diff options
author | Zack Weinberg <zackw@stanford.edu> | 2001-03-02 00:42:28 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2001-03-02 00:42:28 +0000 |
commit | cb7738452f613d5f10acc3e816c48be679c67087 (patch) | |
tree | 4ecc2785da359d98a20a15c593a6295bd53281e7 /gcc/cppinit.c | |
parent | 71b7be38c3f1d50ca004b3aa1c21e206d595c67f (diff) | |
download | gcc-cb7738452f613d5f10acc3e816c48be679c67087.tar.gz |
cpphash.h (struct cpp_reader): Add print_version field.
* cpphash.h (struct cpp_reader): Add print_version field.
* cppinit.c (cpp_handle_option): For -v, -version, and --version,
just set print_version and other flags as appropriate.
(cpp_post_options): Print version here if print_version is set.
* toplev.c (exit_after_options): New flag.
(independent_decode_option): Don't exit here; just set
exit_after_options.
(main): Exit after calling lang_hooks.post_options if
exit_after_options is true.
* cppinit.c (append_include_chain): Drop never-used case QUOTE.
(merge_include_chains): Adjust comment to match code.
From-SVN: r40171
Diffstat (limited to 'gcc/cppinit.c')
-rw-r--r-- | gcc/cppinit.c | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/gcc/cppinit.c b/gcc/cppinit.c index d8efb4b559c..e6ae245f823 100644 --- a/gcc/cppinit.c +++ b/gcc/cppinit.c @@ -117,8 +117,9 @@ static void new_pending_directive PARAMS ((struct cpp_pending *, static void output_deps PARAMS ((cpp_reader *)); static int parse_option PARAMS ((const char *)); -/* Fourth argument to append_include_chain: chain to use. */ -enum { QUOTE = 0, BRACKET, SYSTEM, AFTER }; +/* Fourth argument to append_include_chain: chain to use. + Note it's never asked to append to the quote chain. */ +enum { BRACKET = 0, SYSTEM, AFTER }; /* If we have designated initializers (GCC >2.7) these tables can be initialized, constant data. Otherwise, they have to be filled in at @@ -250,7 +251,6 @@ append_include_chain (pfile, dir, path, cxx_aware) switch (path) { - case QUOTE: APPEND (pend, quote, new); break; case BRACKET: APPEND (pend, brack, new); break; case SYSTEM: APPEND (pend, systm, new); break; case AFTER: APPEND (pend, after, new); break; @@ -338,7 +338,7 @@ merge_include_chains (pfile) /* This is a bit tricky. First we drop dupes from the quote-include list. Then we drop dupes from the bracket-include list. Finally, if qtail and brack are the same directory, we cut out - brack. + brack and move brack up to point to qtail. We can't just merge the lists and then uniquify them because then we may lose directories from the <> search path that should @@ -1316,18 +1316,14 @@ cpp_handle_option (pfile, argc, argv) verbose and -version. Historical reasons, don't ask. */ case OPT__version: CPP_OPTION (pfile, help_only) = 1; - goto version; + pfile->print_version = 1; + break; case OPT_v: CPP_OPTION (pfile, verbose) = 1; - goto version; - + pfile->print_version = 1; + break; case OPT_version: - version: - fprintf (stderr, _("GNU CPP version %s (cpplib)"), version_string); -#ifdef TARGET_VERSION - TARGET_VERSION; -#endif - fputc ('\n', stderr); + pfile->print_version = 1; break; case OPT_C: @@ -1684,6 +1680,15 @@ void cpp_post_options (pfile) cpp_reader *pfile; { + if (pfile->print_version) + { + fprintf (stderr, _("GNU CPP version %s (cpplib)"), version_string); +#ifdef TARGET_VERSION + TARGET_VERSION; +#endif + fputc ('\n', stderr); + } + /* Canonicalize in_fname and out_fname. We guarantee they are not NULL, and that the empty string represents stdin / stdout. */ if (CPP_OPTION (pfile, in_fname) == NULL |