This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: problems with iso restrict
- To: law at cygnus dot com, Ulrich Drepper <drepper at cygnus dot com>
- Subject: Re: problems with iso restrict
- From: Richard Henderson <rth at cygnus dot com>
- Date: Fri, 4 Dec 1998 11:50:40 -0800
- Cc: egcs at cygnus dot com, rth at cygnus dot com, gavin at cygnus dot com
- References: <r2ogpjrb79.fsf@happy.cygnus.com> <18014.912798472@hurl.cygnus.com>
- Reply-To: Richard Henderson <rth at cygnus dot com>
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}\