diff options
author | Richard Guenther <rguenther@suse.de> | 2012-04-03 11:38:04 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-04-03 11:38:04 +0000 |
commit | 07b1bf209c2fa991491ea9317d8afe225dd44f97 (patch) | |
tree | 89c43a99b22d5e7d34c2934ec55d1719cf2bab3a /gcc/testsuite | |
parent | 90b2952fa43b86c74d7ad99893f757abf30788f5 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr52808.c | 12 |
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; +} |