1 
2 #ifdef TEST1
3 struct tag {
4   int good1;
5   register int bad;	/* ERROR */
6   int good2;
7 } badstruct;		/* IGNORE */
8 #endif
9 
10 #ifdef TEST2
11 struct tag {
12   int good1;
13   int bad;	/* IGNORE */
14   int bad;	/* ERROR */
15   int good2;
16 } badstruct;
17 #endif
18 
19 #ifdef TEST3a
20 struct tag {
21   int good1;
22   int bad:255;	/* ERROR */
23   int good2;
24 } badstruct;
25 #endif
26 
27 #ifdef TEST3b
28 struct tag {
29   int good1;
30   float badtype1 : 5; /* ERROR */
31   int good2;
32   _Bool badwidth2 : 2; /* ERROR */
33   int good3;
34   int badwidth2 : 17; /* ERROR */
35   int good4;
36 } badstruct;
37 #endif
38 
39 #ifdef TEST4
40 struct tag {
41   int good1;
42   int good2;
43 } goodstruct1;
44 
45 struct tag goodstruct2;
46 #endif
47 
48 #ifdef TEST5a
49 struct tag {
50   int good1;
51   int good2;
52 } goodstruct1;
53 
54 union tag badunion;	/* ERROR */
55 #endif
56 
57 #ifdef TEST5b
58 union tag {
59   int good1;
60   int good2;
61 } goodunion1;
62 
63 struct tag badstruct;	/* ERROR */
64 #endif
65 
66 
67 #ifdef TEST6
68 struct linklist {
69   struct linklist *prev;
70   struct linklist *next;
71   int x;
72 } ll;
73 #endif
74 
75 #ifdef TEST7a
76 union tag {
77   struct tag *next;	/* ERROR */
78   int x;
79 } ll;
80 #endif
81 
82 #ifdef TEST7b
83 struct tag {
84   union tag *next;	/* ERROR */
85   int x;
86 } ll;
87 #endif
88 
89 #ifdef TEST8a
90 struct tag {
91   int a;		/* IGNORE */
92   struct {
93     int a;		/* ERROR(SDCC) */ /* IGNORE(GCC) */
94     int b;
95   };
96 } ll;
97 #endif
98 
99 #ifdef TEST8b
100 struct tag {
101   int a;
102   struct {
103     int b;
104     int c;
105   };
106 } ll;
107 
test(void)108 void test(void)
109 {
110   ll.a = 1;
111   ll.b = 2;
112   ll.c = 3;
113 }
114 
115 #endif
116