1 /* Test for -Wtraditional warnings on label conflicts with identifiers.
2 Note, gcc should omit these warnings in system header files.
3 Origin: Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8/24/2000. */
4 /* { dg-do compile } */
5 /* { dg-options "-Wtraditional" } */
6
7 enum foo1 { a };
8 struct foo2 { int i; };
9 union foo3 { int j; };
10 int foo4;
11 typedef int foo5;
12
13 void
testfunc1(foo6)14 testfunc1 (foo6)
15 int foo6;
16 {
17 int foo7;
18
19 foo1:
20 foo2:
21 foo3:
22 foo4: /* { dg-warning "traditional C lacks" "label conflicts with identifier" } */
23 foo5: /* { dg-warning "traditional C lacks" "label conflicts with identifier" } */
24 foo6: /* { dg-warning "traditional C lacks" "label conflicts with identifier" } */
25 foo7: /* { dg-warning "traditional C lacks" "label conflicts with identifier" } */
26 testfunc1: /* { dg-warning "traditional C lacks" "label conflicts with identifier" } */
27 a: /* { dg-warning "traditional C lacks" "label conflicts with identifier" } */
28 i:
29 j: ;
30 }
31
32 # 32 "sys-header.h" 3
33 /* We are in system headers now, no -Wtraditional warnings should issue. */
34
35 void
testfunc2(foo6)36 testfunc2 (foo6)
37 int foo6;
38 {
39 int foo7;
40
41 foo1:
42 foo2:
43 foo3:
44 foo4:
45 foo5:
46 foo6:
47 foo7:
48 testfunc2:
49 a:
50 i:
51 j: ;
52 }
53