This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: -Wtraditional vs glibc
On Fri, Dec 21, 2001 at 06:45:17PM +0000, Joseph S. Myers wrote:
> You should have a testcase (perhaps by adding a suitable case, with
> __extension__, to wtr-aggr-init-1.c).
Done.
r~
* gcc.dg/wtr-aggr-init-1.c: Test that __extension__ disables then
re-enables the warning.
Index: gcc.dg/wtr-aggr-init-1.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/wtr-aggr-init-1.c,v
retrieving revision 1.2
diff -u -p -r1.2 wtr-aggr-init-1.c
--- wtr-aggr-init-1.c 2000/12/07 23:21:09 1.2
+++ wtr-aggr-init-1.c 2001/12/21 19:13:20
@@ -20,19 +20,29 @@ testfunc1 (void)
static struct foo f4 = { 0, 0 };
f3 = f4;
+
+ __extension__ ({
+ struct foo f5 = { 0, 0 }; /* { dg-bogus "traditional C rejects automatic" "__extension__ disables warnings" } */
+ f5.i = 0;
+ });
+
+ {
+ struct foo f6 = { 0, 0 }; /* { dg-warning "traditional C rejects automatic" "__extension__ reenables warnings" } */
+ f6.i = 0;
+ }
}
-# 26 "sys-header.h" 3
+# 35 "sys-header.h" 3
/* We are in system headers now, no -Wtraditional warnings should issue. */
-struct foo f5 = { 0, 0 };
-static struct foo f6 = { 0, 0 };
+struct foo f7 = { 0, 0 };
+static struct foo f8 = { 0, 0 };
void
testfunc2 (void)
{
- struct foo f7 = { 0, 0 };
- static struct foo f8 = { 0, 0 };
+ struct foo f9 = { 0, 0 };
+ static struct foo f10 = { 0, 0 };
- f7 = f8;
+ f9 = f10;
}