2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.dg / c99-scope-1.c
blob48ea3b088f70c9d87e9b9e9e8074d90605795303
1 /* Test for new block scopes in C99. Inspired by C99 Rationale (N897). */
2 /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
3 /* { dg-do run } */
4 /* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
6 struct foo {
7 char a;
8 };
10 extern void abort (void);
11 extern void exit (int);
13 int
14 sfoo (void)
16 if (sizeof (struct foo { int a; double b; char *c; void *d; }))
17 (void) 0;
18 return sizeof (struct foo);
21 int
22 main (void)
24 int t, u;
25 t = sfoo ();
26 u = sizeof (struct foo);
27 /* With C90 scoping rules the new declaration of struct foo is in scope
28 above; with C99 it is local to the if.
30 if (t == u)
31 exit (0); /* C99 rules apply. */
32 else
33 abort (); /* C90 rules apply. */