1 2 #ifdef TEST1 3 typedef union { 4 long l; 5 float f; 6 } floatlong; 7 func(char floatlong)8char 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)20long 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