diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/c-c++-common/torture/pr60971.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/c-c++-common/torture/pr60971.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/c-c++-common/torture/pr60971.c b/gcc-4.9/gcc/testsuite/c-c++-common/torture/pr60971.c new file mode 100644 index 000000000..b7a967dab --- /dev/null +++ b/gcc-4.9/gcc/testsuite/c-c++-common/torture/pr60971.c @@ -0,0 +1,34 @@ +/* PR tree-optimization/60971 */ +/* { dg-do run } */ + +#ifndef __cplusplus +#define bool _Bool +#endif + +volatile unsigned char c; + +__attribute__((noinline)) unsigned char +foo (void) +{ + return c; +} + +__attribute__((noinline)) bool +bar (void) +{ + return foo () & 1; +} + +int +main () +{ + c = 0x41; + c = bar (); + if (c != 1) + __builtin_abort (); + c = 0x20; + c = bar (); + if (c != 0) + __builtin_abort (); + return 0; +} |