diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52244.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52244.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52244.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52244.c new file mode 100644 index 000000000..2a29e3cf4 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52244.c @@ -0,0 +1,36 @@ +/* { dg-do run } */ + +extern void abort (void); + +typedef union u_r +{ + _Bool b; + unsigned char c; +} u_t; + +u_t +bar (void) +{ + u_t u; + u.c = 0x12; + return u; +} + +u_t __attribute__ ((noinline)) +foo (void) +{ + u_t u; + + u.b = 1; + u = bar (); + + return u; +} + +int main (int argc, char **argv) +{ + u_t u = foo (); + if (u.c != 0x12) + abort (); + return 0; +} |