PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr70566.c
blobf47106e70c7d4d7f3623f9505c02445a63332a9d
1 /* PR target/70566. */
3 #define NULL 0
5 struct mystruct
7 unsigned int f1 : 1;
8 unsigned int f2 : 1;
9 unsigned int f3 : 1;
12 __attribute__ ((noinline)) void
13 myfunc (int a, void *b)
16 __attribute__ ((noinline)) int
17 myfunc2 (void *a)
19 return 0;
22 static void
23 set_f2 (struct mystruct *user, int f2)
25 if (user->f2 != f2)
26 myfunc (myfunc2 (NULL), NULL);
27 else
28 __builtin_abort ();
31 __attribute__ ((noinline)) void
32 foo (void *data)
34 struct mystruct *user = data;
35 if (!user->f2)
36 set_f2 (user, 1);
39 int
40 main (void)
42 struct mystruct a;
43 a.f1 = 1;
44 a.f2 = 0;
45 foo (&a);
46 return 0;