diff options
author | Nick Clifton <nickc@cygnus.com> | 1999-10-19 13:02:39 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 1999-10-19 13:02:39 +0000 |
commit | 0c70c30f29b27ba2020262a8a77f516403b8c5ca (patch) | |
tree | f5ad6f3f61643dca3f71111700483edc3f24317a /gcc | |
parent | 61e8b354cf177558e08f4202ccacc7b8435b04ae (diff) | |
download | gcc-0c70c30f29b27ba2020262a8a77f516403b8c5ca.zip gcc-0c70c30f29b27ba2020262a8a77f516403b8c5ca.tar.gz gcc-0c70c30f29b27ba2020262a8a77f516403b8c5ca.tar.bz2 |
Do not generate error message about unrecognised command line switches of
other languages.
From-SVN: r30085
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/toplev.c | 35 |
2 files changed, 41 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7be360d..54dc715 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Tue Oct 19 14:01:34 1999 Nick Clifton <nickc@cygnus.com> + + * toplev.c (main): Do not generate an error message if an + unrecognised command line switch is recognisable by another + language. If extra_warnings are enabled, then generate a + warning message instead. + Tue Oct 19 11:41:12 1999 Mumit Khan <khan@xraylith.wisc.edu> * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro. diff --git a/gcc/toplev.c b/gcc/toplev.c index 753d65d..95bda3d 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -5414,7 +5414,40 @@ main (argc, argv) ? lang_processed : indep_processed); else { - warning ("ignoring option `%s'", argv[i]); + const char * option = NULL; + const char * lang = NULL; + unsigned int j; + + /* It is possible that the command line switch is not valid for the + current language, but it is valid for another language. In order + to be compatible with previous versions of the compiler (which + did not issue an error message in this case) we check for this + possibilty here. If we do find a match, then if extra_warnings + is set we generate a warning message, otherwise we will just + ignore the option. */ + for (j = 0; j < NUM_ELEM (documented_lang_options); j++) + { + option = documented_lang_options[j].option; + + if (option == NULL) + lang = documented_lang_options[j].description; + else if (! strncmp (argv[i], option, strlen (option))) + break; + } + + if (option) + { + if (extra_warnings) + { + warning ("Ignoring command line option '%s'", argv[i]); + if (lang) + warning ("\ +(It is valid for %s but not the selected langauge)", lang); + } + } + else + error ("Unrecognised option `%s'", argv[i]); + i++; } } |