This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Fixup generating error messages for unrecognised switches


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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]