diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a0c07456ac6..261286e57c3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-07-04 Richard Guenther + + PR tree-optimization/32500 + * gcc.c-torture/execute/pr32500.c: New testcase. + 2007-07-04 Richard Guenther PR tree-optimization/32482 diff --git a/gcc/testsuite/gcc.c-torture/execute/pr32500.c b/gcc/testsuite/gcc.c-torture/execute/pr32500.c new file mode 100644 index 00000000000..dae06ea3a25 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr32500.c @@ -0,0 +1,26 @@ +extern void abort(void); +extern void exit(int); +void foo(int) __attribute__((noinline)); +void bar(void) __attribute__((noinline)); + +/* Make sure foo is not inlined or considered pure/const. */ +int x; +void foo(int i) { x = i; } +void bar(void) { exit(0); } + +int +main(int argc, char *argv[]) +{ + int i; + int numbers[4] = { 0xdead, 0xbeef, 0x1337, 0x4242 }; + + for (i = 1; i <= 12; i++) { + if (i <= 4) + foo(numbers[i]); + else if (i >= 7 && i <= 9) + bar(); + } + + abort(); +} +