aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-04-03 11:38:04 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-04-03 11:38:04 +0000
commit07b1bf209c2fa991491ea9317d8afe225dd44f97 (patch)
tree89c43a99b22d5e7d34c2934ec55d1719cf2bab3a /gcc/testsuite
parent90b2952fa43b86c74d7ad99893f757abf30788f5 (diff)
downloadgcc-07b1bf209c2fa991491ea9317d8afe225dd44f97.zip
gcc-07b1bf209c2fa991491ea9317d8afe225dd44f97.tar.gz
gcc-07b1bf209c2fa991491ea9317d8afe225dd44f97.tar.bz2
re PR bootstrap/52808 (LTO bootstrap failed with bootstrap-profiled)
2012-04-03 Richard Guenther <rguenther@suse.de> PR tree-optimization/52808 * tracer.c (tail_duplicate): Return whether we have duplicated any block. (tracer): If we have duplicated any block, cleanup the CFG. * cfghooks.c (duplicate_block): If we duplicated a loop header but not its loop, destroy the loop because it now has multiple entries. * tree-ssa-threadupdate.c (thread_through_loop_header): Tell the cfg manipulation routines we are not creating a multiple entry loop. * gcc.dg/pr52808.c: New testcase. From-SVN: r186104
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr52808.c12
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7fe8a18..c757d42d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-03 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/52808
+ * gcc.dg/pr52808.c: New testcase.
+
2012-04-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/52835
diff --git a/gcc/testsuite/gcc.dg/pr52808.c b/gcc/testsuite/gcc.dg/pr52808.c
new file mode 100644
index 0000000..b731cb4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr52808.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O -ftracer" } */
+
+int **fn1 () __attribute__ ((__const__));
+int main ()
+{
+ int i;
+ i = 0;
+ for (;; i++)
+ if (*fn1 ()[i] && !'a' <= 0 && i <= 'z' || *fn1 ()[0] && 'a' <= 'z')
+ return;
+}