This is the mail archive of the gcc@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]

Re: problems with iso restrict


On Fri, Dec 04, 1998 at 12:07:52PM -0700, Jeffrey A Law wrote:
> *Right now*, I would think GNU C should be backwards compatible with existing
> GNU C implementations.  If that means c9x should not be the default right now
> because of namespace pollution with "restrict", then so be it.

How about the following patch.  It removes -std=gnu in favour of
-std=gnu89 and -std=gnu9x.  This obviates the suggestion made 
earlier for such nastiness as -std=c9x -ansi.


r~



Index: c-decl.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/c-decl.c,v
retrieving revision 1.52
diff -u -p -r1.52 c-decl.c
--- c-decl.c	1998/12/01 21:04:56	1.52
+++ c-decl.c	1998/12/04 19:47:44
@@ -470,7 +470,7 @@ int flag_traditional;
 
 /* Nonzero means use the ISO C9x dialect of C.  */
 
-int flag_isoc9x = 1;
+int flag_isoc9x = 0;
 
 /* Nonzero means that we have builtin functions, and main is an int */
 
@@ -657,11 +657,12 @@ c_decode_option (argc, argv)
       /* Select the appropriate language standard.  We currently
 	 recognize:
 	 -std=iso9899:1990	same as -ansi
-	 -std=gnu		default
 	 -std=iso9899:199409	ISO C as modified in amend. 1
 	 -std=iso9899:199x	ISO C 9x
 	 -std=c89		same as -std=iso9899:1990
 	 -std=c9x		same as -std=iso9899:199x
+	 -std=gnu89		default, iso9899:1990 + gnu extensions
+	 -std=gnu9x		iso9899:199x + gnu extensions
       */
       const char *argstart = &p[5];
 
@@ -689,7 +690,15 @@ c_decode_option (argc, argv)
 	  flag_no_nonansi_builtin = 1;
 	  flag_isoc9x = 1;
 	}
-      else if (!strcmp (argstart, "gnu"))
+      else if (!strcmp (argstart, "gnu89"))
+	{
+	  flag_traditional = 0;
+	  flag_writable_strings = 0;
+	  flag_no_asm = 0;
+	  flag_no_nonansi_builtin = 0;
+	  flag_isoc9x = 0;
+	}
+      else if (!strcmp (argstart, "gnu9x"))
 	{
 	  flag_traditional = 0;
 	  flag_writable_strings = 0;
Index: cccp.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cccp.c,v
retrieving revision 1.45
diff -u -p -r1.45 cccp.c
--- cccp.c	1998/12/01 21:05:04	1.45
+++ cccp.c	1998/12/04 19:48:11
@@ -1172,7 +1172,7 @@ print_help ()
   printf ("  -lang-asm                 Assume that the input sources are in assembler\n");
   printf ("  -lang-chill               Assume that the input sources are in Chill\n");
   printf ("  -std=<std name>           Specify the conformance standard; one of:\n");
-  printf ("                            gnu, c89, c9x, iso9899:1990,\n");
+  printf ("                            gnu89, gnu9x, c89, c9x, iso9899:1990,\n");
   printf ("                            iso9899:199409, iso9899:199x\n");
   printf ("  -+                        Allow parsing of C++ style features\n");
   printf ("  -w                        Inhibit warning messages\n");
@@ -1494,11 +1494,12 @@ main (argc, argv)
       case 's':
 	if (!strcmp (argv[i], "-std=iso9899:1990")
 	    || !strcmp (argv[i], "-std=iso9899:199409")
-	    || !strcmp (argv[i], "-std=c89"))
+	    || !strcmp (argv[i], "-std=c89")
+	    || !strcmp (argv[i], "-std=gnu89"))
 	  cplusplus = 0, cplusplus_comments = 0, c89 = 1, c9x = 0, objc = 0;
         else if (!strcmp (argv[i], "-std=iso9899:199x")
 		 || !strcmp (argv[i], "-std=c9x")
-		 || !strcmp (argv[i], "-std=gnu"))
+		 || !strcmp (argv[i], "-std=gnu9x"))
 	  cplusplus = 0, cplusplus_comments = 1, c89 = 0, c9x = 1, objc = 0;
 	break;
 
Index: gcc.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/gcc.c,v
retrieving revision 1.74
diff -u -p -r1.74 gcc.c
--- gcc.c	1998/12/01 21:05:08	1.74
+++ gcc.c	1998/12/04 19:48:22
@@ -586,8 +586,8 @@ static struct compiler default_compilers
 	%{C:%{!E:%eGNU C does not support -C without using -E}}\
 	%{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\
         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
-	%{ansi|std=*:%{!std=gnu:-trigraphs -D__STRICT_ANSI__}}\
-	%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu:%p}} %P} %{trigraphs}\
+	%{ansi|std=*:%{!std=gnu*:-trigraphs -D__STRICT_ANSI__}}\
+	%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\
         %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\
         %{traditional} %{ftraditional:-traditional}\
         %{traditional-cpp:-traditional}\
@@ -599,8 +599,8 @@ static struct compiler default_compilers
                   %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\
                   %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\
                   -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
-		  %{ansi|std=*:%{!std=gnu:-trigraphs -D__STRICT_ANSI__}}\
-		  %{!undef:%{!ansi:%{!std=*:%p}%{std=gnu:%p}} %P} %{trigraphs}\
+		  %{ansi|std=*:%{!std=gnu*:-trigraphs -D__STRICT_ANSI__}}\
+		  %{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\
                   %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\
                   %{H} %C %{D*} %{U*} %{i*} %Z\
                   %{ftraditional:-traditional}\
@@ -621,8 +621,8 @@ static struct compiler default_compilers
 	%{C:%{!E:%eGNU C does not support -C without using -E}}\
 	%{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\
         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
-	%{ansi|std=*:%{!std=gnu:-trigraphs -D__STRICT_ANSI__}}\
-	%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu:%p}} %P} %{trigraphs}\
+	%{ansi|std=*:%{!std=gnu*:-trigraphs -D__STRICT_ANSI__}}\
+	%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\
         %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\
         %{traditional} %{ftraditional:-traditional}\
         %{traditional-cpp:-traditional}\
@@ -648,8 +648,8 @@ static struct compiler default_compilers
 	%{C:%{!E:%eGNU C does not support -C without using -E}}\
 	%{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\
         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
-	%{ansi|std=*:%{!std=gnu:-trigraphs -D__STRICT_ANSI__}}\
-	%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu:%p}} %P} %{trigraphs}\
+	%{ansi|std=*:%{!std=gnu*:-trigraphs -D__STRICT_ANSI__}}\
+	%{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\
         %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\
         %{traditional} %{ftraditional:-traditional}\
         %{traditional-cpp:-traditional}\
@@ -664,8 +664,8 @@ static struct compiler default_compilers
 	%{C:%{!E:%eGNU C does not support -C without using -E}}\
 	 %{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\
         -undef -D__GNUC__=%v1 -D__GNUC_MINOR__=%v2\
-	%{std=*:%{!std=gnu:-trigraphs -D__STRICT_ANSI__}}\
-	%{!undef:%{!std=*:%p}%{std=gnu:%p} %P} %{trigraphs}\
+	%{std=*:%{!std=gnu*:-trigraphs -D__STRICT_ANSI__}}\
+	%{!undef:%{!std=*:%p}%{std=gnu*:%p} %P} %{trigraphs}\
         %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\
         %{traditional} %{ftraditional:-traditional}\
         %{traditional-cpp:-traditional}\


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