1 /* { dg-do run } */ 2 3 extern void abort (void); 4 5 typedef union u_r 6 { 7 _Bool b; 8 unsigned char c; 9 } u_t; 10 11 u_t bar(void)12bar (void) 13 { 14 u_t u; 15 u.c = 0x12; 16 return u; 17 } 18 19 u_t __attribute__ ((noinline)) foo(void)20foo (void) 21 { 22 u_t u; 23 24 u.b = 1; 25 u = bar (); 26 27 return u; 28 } 29 main(int argc,char ** argv)30int main (int argc, char **argv) 31 { 32 u_t u = foo (); 33 if (u.c != 0x12) 34 abort (); 35 return 0; 36 } 37