diff options
author | Richard Guenther <rguenther@suse.de> | 2011-11-10 15:28:57 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-11-10 15:28:57 +0000 |
commit | 4da80bfb5d2e188674abdf5461876108e77ab881 (patch) | |
tree | 8c7ddc725098e69e509a4775363d0458e154e0d0 /gcc/testsuite | |
parent | c07a8cb3c903f5152e013748f773adecdb82122e (diff) | |
download | gcc-4da80bfb5d2e188674abdf5461876108e77ab881.zip gcc-4da80bfb5d2e188674abdf5461876108e77ab881.tar.gz gcc-4da80bfb5d2e188674abdf5461876108e77ab881.tar.bz2 |
re PR tree-optimization/51042 (endless recursion in phi_translate)
2011-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51042
* tree-ssa-pre.c (phi_translate_1): Avoid recursing on
self-referential expressions. Refactor code to avoid duplication.
* gcc.dg/torture/pr51042.c: New testcase.
From-SVN: r181256
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr51042.c | 22 |
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c04d8dc..ecfcdbe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2011-11-10 Richard Guenther <rguenther@suse.de> + PR tree-optimization/51042 + * gcc.dg/torture/pr51042.c: New testcase. + +2011-11-10 Richard Guenther <rguenther@suse.de> + PR tree-optimization/51070 * gcc.dg/torture/pr51070.c: New testcase. diff --git a/gcc/testsuite/gcc.dg/torture/pr51042.c b/gcc/testsuite/gcc.dg/torture/pr51042.c new file mode 100644 index 0000000..05961c4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr51042.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ + +int a, b; + +void +foo (int x) +{ + int e[2]; + int d; + while (x) + { + for (d = 0; d <= 1; d = 1) + if (e[a]) + break; + for (b = 0; b <= 0; b = 1) + { + e[a] = a; + if (a) + break; + } + } +} |