diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cppinit.c | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2481179..0a2d1c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-05-01 Jakub Jelinek <jakub@redhat.com> + + * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here... + (cpp_post_options): ...but here. Disable -dD, -dN and -dI when + -M -or -MM is in effect. + 2002-05-01 Zack Weinberg <zack@codesourcery.com> * config.gcc: Correct test of --enable-obsolete. Obsolete all diff --git a/gcc/cppinit.c b/gcc/cppinit.c index c4f5942..cee7571 100644 --- a/gcc/cppinit.c +++ b/gcc/cppinit.c @@ -1549,7 +1549,6 @@ cpp_handle_option (pfile, argc, argv, ignore) { case 'M': CPP_OPTION (pfile, dump_macros) = dump_only; - CPP_OPTION (pfile, no_output) = 1; break; case 'N': CPP_OPTION (pfile, dump_macros) = dump_names; @@ -1820,6 +1819,21 @@ cpp_post_options (pfile) if (CPP_OPTION (pfile, preprocessed)) pfile->state.prevent_expansion = 1; + /* -dM makes no normal output. This is set here so that -dM -dD + works as expected. */ + if (CPP_OPTION (pfile, dump_macros) == dump_only) + CPP_OPTION (pfile, no_output) = 1; + + /* Disable -dD, -dN and -dI if we should make no normal output + (such as with -M). Allow -M -dM since some software relies on + this. */ + if (CPP_OPTION (pfile, no_output)) + { + if (CPP_OPTION (pfile, dump_macros) != dump_only) + CPP_OPTION (pfile, dump_macros) = dump_none; + CPP_OPTION (pfile, dump_includes) = 0; + } + /* We need to do this after option processing and before cpp_start_read, as cppmain.c relies on the options->no_output to set its callbacks correctly before calling cpp_start_read. */ |