1 /* PR debug/43972 */
2 /* { dg-do compile } */
3 /* { dg-options "-g -w" } */
4 /* { dg-options "-g -fpic -w" { target fpic } } */
5 
6 struct { int *b1; } *f1 ();
7 short v1[1];
8 struct S { int b2; };
9 void
foo(struct S * a1,union{ char *b3; unsigned *b4; int *b5; } * a2)10 foo (struct S *a1, union { char *b3; unsigned *b4; int *b5; } *a2)
11 {
12   int d;
13   switch (d)
14     {
15     case 0:
16       {
17 	int c = a1->b2, i;
18 	if (f1 () == 0)
19 	  *a2->b3++ = 2;
20 	else if (((long) (f1 () - f1 ())) ^ ((long) f1 ()->b1 - ((long) f1 () & 8)))
21 	  *a2->b3++ = (long) f1 - ((long) f1 () & 0xff);
22 	else
23 	  *a2->b4++ = (long) f1;
24 	for (i = 0; i < c; i++)
25 	  *a2->b5++ = (long) v1;
26 	foo (a1, a2);
27       }
28     }
29 }
30