diff options
author | Neil Booth <neilb@earthling.net> | 2000-08-17 17:52:48 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2000-08-17 17:52:48 +0000 |
commit | c154ba66ef8560de3bee1ec17242cdaa5fe9e53c (patch) | |
tree | 145baebe1eb6775512b8143d7c1d5adf52be0c8a /gcc/cppinit.c | |
parent | 9c82ac6bea8fe68b1ab367d6bcb99040c795227f (diff) | |
download | gcc-c154ba66ef8560de3bee1ec17242cdaa5fe9e53c.zip gcc-c154ba66ef8560de3bee1ec17242cdaa5fe9e53c.tar.gz gcc-c154ba66ef8560de3bee1ec17242cdaa5fe9e53c.tar.bz2 |
cppinit.c (sort_options): Remove, put functionality in cpp_init.
* 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.
From-SVN: r35763
Diffstat (limited to 'gcc/cppinit.c')
-rw-r--r-- | gcc/cppinit.c | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/gcc/cppinit.c b/gcc/cppinit.c index c845028..bb37890 100644 --- a/gcc/cppinit.c +++ b/gcc/cppinit.c @@ -111,7 +111,6 @@ static void new_pending_directive PARAMS ((struct cpp_pending *, 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 *)); @@ -402,16 +401,24 @@ merge_include_chains (pfile) 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; @@ -592,7 +599,9 @@ initialize_builtins (pfile) str = xmalloc (b->len + strlen (val) + 2); sprintf(str, "%s=%s", b->name, val); } + cpp_define (pfile, str); + free (str); } else { @@ -806,10 +815,6 @@ cpp_start_read (pfile, print, fname) || 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); @@ -1074,22 +1079,6 @@ static const struct cl_option cl_options[] = #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 |