1 
2 #ifdef TEST1
3 typedef union {
4   long l;
5   float f;
6 } floatlong;
7 
func(char floatlong)8 char func(char floatlong)
9 {
10   return floatlong;
11 }
12 #endif
13 
14 #ifdef TEST2
15 typedef union {
16   long l;
17   float f;
18 } floatlong;
19 
func(float x)20 long func(float x)
21 {
22   typedef union {
23     float f2;
24     long l2;
25     char c[4];
26   } floatlong;
27   floatlong fl;
28 
29   fl.f2=x;
30   return fl.l2;
31 }
32 #endif
33 
34 /* This is no longer an error in C11, so test with earlier standard. */
35 /* Unfortunately, GCC seems to accept this regardless. */
36 #ifdef TEST3_C99
37 typedef int I;		/* IGNORE */
38 typedef int I;		/* ERROR(SDCC) */
39 #endif
40 
41 #ifdef TEST4
42 typedef int I;		/* IGNORE */
43 typedef char I;		/* ERROR */
44 #endif
45 
46