aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-07-04 12:39:42 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-07-04 12:39:42 +0000
commit7d8c27ffa274c9dcaecc29421e3dbec08077be72 (patch)
tree2e23a360464104b5ec3ddf4e50ff5e34d5927b0d
parentb0569227f5167ff69e3d729452f9066c9c15f15a (diff)
downloadgcc-7d8c27ffa274c9dcaecc29421e3dbec08077be72.zip
gcc-7d8c27ffa274c9dcaecc29421e3dbec08077be72.tar.gz
gcc-7d8c27ffa274c9dcaecc29421e3dbec08077be72.tar.bz2
re PR tree-optimization/32500 (Loop optimization limits range to size of array used inside loop)
2007-07-04 Richard Guenther <rguenther@suse.de> PR tree-optimization/32500 * gcc.c-torture/execute/pr32500.c: New testcase. From-SVN: r126316
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr32500.c26
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a0c0745..261286e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2007-07-04 Richard Guenther <rguenther@suse.de>
+ PR tree-optimization/32500
+ * gcc.c-torture/execute/pr32500.c: New testcase.
+
+2007-07-04 Richard Guenther <rguenther@suse.de>
+
PR tree-optimization/32482
* gcc.c-torture/compile/pr32482.c: New testcase.
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 0000000..dae06ea
--- /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();
+}
+