summaryrefslogtreecommitdiff
path: root/gcc/cppinit.c
diff options
context:
space:
mode:
authorZack Weinberg <zackw@stanford.edu>2001-03-02 00:42:28 +0000
committerZack Weinberg <zack@gcc.gnu.org>2001-03-02 00:42:28 +0000
commitcb7738452f613d5f10acc3e816c48be679c67087 (patch)
tree4ecc2785da359d98a20a15c593a6295bd53281e7 /gcc/cppinit.c
parent71b7be38c3f1d50ca004b3aa1c21e206d595c67f (diff)
downloadgcc-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.c31
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