1 /* PR c/20043 */ 2 /* { dg-do compile } */ 3 /* { dg-options "-std=gnu99" } */ 4 5 typedef union { int *i; long *l; } U 6 __attribute__((transparent_union)); 7 8 extern void f0 (U); /* { dg-message "note: previous declaration" } */ 9 extern void f0 (void *); /* { dg-error "conflicting types" } */ 10 11 extern void f1 (U); /* { dg-message "note: previous declaration" } */ 12 extern void f1 (unsigned long); /* { dg-error "conflicting types" } */ 13 14 extern void f2 (void *); /* { dg-message "note: previous declaration" } */ 15 extern void f2 (U); /* { dg-error "conflicting types" } */ 16 17 extern void f3 (unsigned long); /* { dg-message "note: previous declaration" } */ 18 extern void f3 (U); /* { dg-error "conflicting types" } */ 19