diff options
author | Devang Patel <dpatel@gcc.gnu.org> | 2005-09-27 14:44:55 -0700 |
---|---|---|
committer | Devang Patel <dpatel@gcc.gnu.org> | 2005-09-27 14:44:55 -0700 |
commit | 93954fcc895e40418cecc5c0c1d35ef579ea204d (patch) | |
tree | e16ad23964e27638c0cf9040bb26c64666d13029 /gcc | |
parent | 118ea208fa6de41756b9d1cce052e0bd64c681c2 (diff) | |
download | gcc-93954fcc895e40418cecc5c0c1d35ef579ea204d.zip gcc-93954fcc895e40418cecc5c0c1d35ef579ea204d.tar.gz gcc-93954fcc895e40418cecc5c0c1d35ef579ea204d.tar.bz2 |
re PR tree-optimization/23625 (ICE: in bsi_after_labels, at tree-flow-inline.h:758)
PR tree-optimization/23625
* tree-flow-inline.h (bsi_after_labels): Remove, first statement is
LABEL_EXPR, assertion check.
* gcc.dg/PR23625.c: New test.
From-SVN: r104711
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr23625.c | 27 | ||||
-rw-r--r-- | gcc/tree-flow-inline.h | 9 |
4 files changed, 40 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d1db15e..8963cab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-09-27 Daniel Berlin <dberlin@dberlin.org> + Devang Patel <dpatel@apple.com> + + PR tree-optimization/23625 + * tree-flow-inline.h (bsi_after_labels): Remove, first statement is + LABEL_EXPR, assertion check. + 2005-09-27 J"orn Rennecke <joern.rennecke@st.com> * optabs.c (no_conflict_move_test): Check if a result of a diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9fd016a..61bf586 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-09-27 Devang Patel <dpatel@apple.com> + + PR tree-optimization/23625 + * gcc.dg/pr23625.c: New test. + 2005-09-27 Uros Bizjak <uros@kss-loka.si> * gcc.target/i386/pr22585.c: Run on 32-bit x86 only. diff --git a/gcc/testsuite/gcc.dg/pr23625.c b/gcc/testsuite/gcc.dg/pr23625.c new file mode 100644 index 0000000..aaeddb2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr23625.c @@ -0,0 +1,27 @@ +/* Test case for PR23625 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -ftree-vectorize -ftree-loop-linear" } */ + +typedef long INT32; +void find_best_colors () +{ +int ic0, ic1, ic2; +INT32 * bptr; +INT32 dist1; +INT32 dist2; +INT32 xx1; +for (ic0 = (1<<(5 -3))-1;ic0 >= 0;ic0--) +{ + for (ic1 = (1<<(6 -3))-1;ic1 >= 0;ic1--) + { + dist2 = dist1; + for (ic2 = (1<<(5 -3))-1;ic2 >= 0;ic2--) + { + *bptr = dist2; + bptr++; + } + dist1 += xx1; + } +} +} + diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index b317c8c..d8b57a5 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -727,7 +727,7 @@ bsi_start (basic_block bb) return bsi; } -/* Return a block statement iterator that points to the last label in +/* Return a block statement iterator that points to the first non-label block BB. */ static inline block_stmt_iterator @@ -750,13 +750,6 @@ bsi_after_labels (basic_block bb) if (tsi_end_p (bsi.tsi)) return bsi; - /* Ensure that there are some labels. The rationale is that we want - to insert after the bsi that is returned, and these insertions should - be placed at the start of the basic block. This would not work if the - first statement was not label; rather fail here than enable the user - proceed in wrong way. */ - gcc_assert (TREE_CODE (tsi_stmt (bsi.tsi)) == LABEL_EXPR); - next = bsi.tsi; tsi_next (&next); |