This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fixup generating error messages for unrecognised switches
- To: gcc-patches at gcc dot gnu dot org
- Subject: Fixup generating error messages for unrecognised switches
- From: Nick Clifton <nickc at cygnus dot com>
- Date: Fri, 12 Nov 1999 15:33:23 GMT
- Reply-to: nickc at cygnus dot co dot uk
Hi Guys,
The patch below fixes a bug in my recent patch to tidy up cc1's
command line parsing. If the user did invoke gcc/cc1 with a
completely invalid switch then no error would be generated because
the string 'option' would always be non-NULL at the end of the
loop checking to see if the switch was recognised by other
languages.
In a related issue the cpplib function cpp_handle_option would
always claim to have successfully consumed an option starting with
-f, even if it hadn't, and so no errors about unrecognised options
starting with -f or -- would ever be generated.
Is this patch OK to install ?
Cheers
Nick
PS. I know that the curly braces around the 'return i;' statement in
the patch to cpp_handle_option are unnecessary and do not conform to
the GNU coding standard. They are there to make merging with the
internal Cygnus version of the code easier.
Fri Nov 12 15:31:10 1999 Nick Clifton <nickc@cygnus.com>
* toplev.c (main): Correctly detect an unrecognised option.
* cppinit.c (cpp_handle_option): Do not claim to have consumed
a -f option if it has not been recognised.
Index: toplev.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/toplev.c,v
retrieving revision 1.257
diff -p -r1.257 toplev.c
*** toplev.c 1999/11/08 15:27:56 1.257
--- toplev.c 1999/11/12 15:23:01
*************** main (argc, argv)
*** 5461,5467 ****
break;
}
! if (option)
{
if (extra_warnings)
{
--- 5461,5467 ----
break;
}
! if (j != NUM_ELEM (documented_lang_options))
{
if (extra_warnings)
{
Index: cppinit.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cppinit.c,v
retrieving revision 1.24
diff -p -r1.24 cppinit.c
*** cppinit.c 1999/11/10 17:57:20 1.24
--- cppinit.c 1999/11/12 15:23:02
*************** cpp_handle_option (pfile, argc, argv)
*** 1105,1110 ****
--- 1105,1114 ----
opts->preprocessed = 1;
else if (!strcmp (argv[i], "-fno-preprocessed"))
opts->preprocessed = 0;
+ else
+ {
+ return i;
+ }
break;
case 'I': /* Add directory to path for includes. */