+2000-08-17 Neil Booth <NeilB@earthling.net>
+
+ * cppinit.c (sort_options): Remove, put functionality in
+ cpp_init.
+ (cpp_init): New.
+ (initialize_builtins): Free memory.
+ (cpp_start_read): Move init_IStable to cpp_init.
+
+ * cpplib.h (cpp_init): New prototype.
+ * cppmain.c (main): Call cpp_init.
+
Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
* rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
cl_directive_handler));
#ifdef HOST_EBCDIC
static int opt_comp PARAMS ((const void *, const void *));
-static void sort_options PARAMS ((void));
#endif
static int parse_option PARAMS ((const char *));
CPP_OPTION (pfile, bracket_include) = brack;
}
+void
+cpp_init (void)
+{
+#ifdef HOST_EBCDIC
+ /* For non-ASCII hosts, the array needs to be sorted at runtime. */
+ qsort (cl_options, N_OPTS, sizeof (struct cl_option), opt_comp);
+#endif
+
+ /* Set up the IStable. This doesn't do anything if we were compiled
+ with a compiler that supports C99 designated initializers. */
+ init_IStable ();
+}
/* Initialize a cpp_reader structure. */
void
cpp_reader_init (pfile)
cpp_reader *pfile;
{
-#ifdef HOST_EBCDIC
- sort_options ();
-#endif
-
memset ((char *) pfile, 0, sizeof (cpp_reader));
CPP_OPTION (pfile, dollars_in_ident) = 1;
str = xmalloc (b->len + strlen (val) + 2);
sprintf(str, "%s=%s", b->name, val);
}
+
cpp_define (pfile, str);
+ free (str);
}
else
{
|| CPP_OPTION (pfile, dump_macros) == dump_definitions
|| CPP_OPTION (pfile, dump_macros) == dump_only;
- /* Set up the IStable. This doesn't do anything if we were compiled
- with a compiler that supports C99 designated initializers. */
- init_IStable ();
-
/* Set up the tables used by read_and_prescan. */
_cpp_init_input_buffer (pfile);
#undef DEF_OPT
#undef COMMAND_LINE_OPTIONS
-#ifdef HOST_EBCDIC
-static void
-sort_options (void)
-{
- static int opts_sorted = 0;
-
- if (!opts_sorted)
- {
- opts_sorted = 1;
- /* For non-ASCII hosts, the array needs to be sorted at runtime */
- qsort (cl_options, N_OPTS, sizeof (struct cl_option), opt_comp);
- }
-}
-#endif
-
-
/* Perform a binary search to find which, if any, option the given
command-line matches. Returns its index in the option array,
negative on failure. Complications arise since some options can be
const unsigned char name[1]; /* name[length] */
};
+extern void cpp_init PARAMS ((void));
extern int cpp_handle_options PARAMS ((cpp_reader *, int, char **));
extern int cpp_handle_option PARAMS ((cpp_reader *, int, char **));
extern void cpp_reader_init PARAMS ((cpp_reader *));