1 typedef union _yystype
2 {
3   int i;
4   int *iptr;
5   int (*ifunc)(int);
6   void (*vfunc)(int);
7 }
8 YYSTYPE;
9 
10 extern int f1(int k);
11 
12 void test()
13 {
14   YYSTYPE a;
15   int (*iptr)(int);
16   int foo[5];
17 
18   a = f1;		/* { dg-error "incompatible types" } */
19   a = (YYSTYPE)f1;
20   a = (YYSTYPE)foo;
21   a = (YYSTYPE)(int *)foo;
22   iptr = f1;
23   a = iptr;		/* { dg-error "incompatible types" } */
24   a = (YYSTYPE)iptr;
25 }
26