diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/pr120677.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr120677.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr120677.c b/gcc/testsuite/gcc.c-torture/execute/pr120677.c new file mode 100644 index 0000000..3cff04e --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr120677.c @@ -0,0 +1,31 @@ +/* PR tree-optimization/120677 */ +/* { dg-do run { target int32plus } } */ + +unsigned a; +int b, e; + +int +foo (int d) +{ + switch (d) + { + case 0: + case 2: + return 0; + default: + return 1; + } +} + +int +main () +{ + for (b = 8; b; b--) + if (a & 1) + a = a >> 1 ^ 20000000; + else + a >>= 1; + e = foo (0); + if (e || a) + __builtin_abort (); +} |