+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.
? 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++;
}
}