diff options
author | Marek Polacek <polacek@redhat.com> | 2013-01-25 08:52:02 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2013-01-25 08:52:02 +0000 |
commit | 1f546bbbc4dcc9cf044310cf0eafb091415df614 (patch) | |
tree | 958b020f880808704534e14fe9664b145f65b415 | |
parent | aaf1e810c27ccddb9f20c0489f135b62eba8a28c (diff) | |
download | gcc-1f546bbbc4dcc9cf044310cf0eafb091415df614.zip gcc-1f546bbbc4dcc9cf044310cf0eafb091415df614.tar.gz gcc-1f546bbbc4dcc9cf044310cf0eafb091415df614.tar.bz2 |
Fix PR56035.
From-SVN: r195462
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgloopmanip.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr56035.c | 35 |
4 files changed, 47 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef53850..327d285 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-01-25 Marek Polacek <polacek@redhat.com> + + PR tree-optimization/56035 + * cfgloopmanip.c (fix_loop_structure): Remove redundant condition. + 2012-01-24 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative. diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index 8c6c39d..c72ceda 100644 --- a/gcc/cfgloopmanip.c +++ b/gcc/cfgloopmanip.c @@ -1823,10 +1823,8 @@ fix_loop_structure (bitmap changed_bbs) /* If there was no latch, schedule the loop for removal. */ if (!first_latch) loop->header = NULL; - /* If there was a single latch and it belongs to the loop of the - header, record it. */ - else if (latch - && latch->src->loop_father == loop) + /* If there was a single latch, record it. */ + else if (latch) loop->latch = latch->src; /* Otherwise there are multiple latches which are eventually disambiguated below. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 62baf69..6fc08a1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-01-22 Marek Polacek <polacek@redhat.com> + + PR tree-optimization/56035 + * gcc.dg/pr56035.c: New test. + 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com> * gfortran.dg/bind_c_array_params_2.f90: Require -mno-relax-pic-calls diff --git a/gcc/testsuite/gcc.dg/pr56035.c b/gcc/testsuite/gcc.dg/pr56035.c new file mode 100644 index 0000000..4e3a77e --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr56035.c @@ -0,0 +1,35 @@ +/* PR tree-optimization/56035 */ +/* { dg-do compile } */ +/* { dg-options "-O1 -ftree-vectorize -fcse-follow-jumps -fstrict-overflow" } */ + +short a, c, *p; + +void +f (void) +{ + int b; + + if (c) + lbl1: + for (a = 0; a < 1; a++) + { + for (c = 0; c < 1; c++) + { + goto lbl1; + while (*p++) + lbl2: + ; + } + } + + for (;; b++) + { + if (c) + goto lbl2; + lbl3: + for (c = 0; c < 9; c++) + for (c = -17; c < 2; c++) + if (*p) + goto lbl3; + } +} |