1 /* { dg-do run } */ 2 /* { dg-options "-fno-early-inlining" } */ 3 4 extern void abort (void); 5 6 union U 7 { 8 int i; 9 _Bool b; 10 }; 11 12 _Bool gb; 13 14 void __attribute__ ((noinline)) use_bool(union U u)15use_bool (union U u) 16 { 17 gb = u.b; 18 } 19 20 union U bar(void)21bar (void) 22 { 23 union U u; 24 u.i = 0xFFFE; 25 return u; 26 } 27 28 union U __attribute__ ((noinline)) foo(void)29foo (void) 30 { 31 union U u,v; 32 33 u.b = 1; 34 use_bool (u); 35 u = bar (); 36 37 return u; 38 } 39 main(int argc,char ** argv)40int main (int argc, char **argv) 41 { 42 union U u = foo (); 43 if (u.i != 0xFFFE) 44 abort (); 45 return 0; 46 } 47