1 /* { dg-do run } */
2 
3 struct S
4 {
5   int f1;
6 };
7 
8 static struct S a = { 1 };
9 char b;
10 static unsigned char *c = &b;
11 int d, e, f;
12 
13 int
fn1(int p)14 fn1 (int p)
15 {
16   return 0 ? 0 : p - 1;
17 }
18 
19 static int
fn2(struct S p)20 fn2 (struct S p)
21 {
22   int g = 200;
23   for (e = 4; e; e = fn1 (e))
24     {
25       for (; d; d++)
26 	;
27       *c &= p.f1 & g;
28       g = --*c;
29       if (f)
30 	return 0;
31     }
32   return 0;
33 }
34 
35 int
main()36 main ()
37 {
38   fn2 (a);
39 
40   if (b != 0)
41     __builtin_abort ();
42 
43   return 0;
44 }
45