diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2005-07-13 14:42:16 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2005-07-13 14:42:16 +0000 |
commit | 3cb005cf5bc536c0be668c87ead9849eaa74457b (patch) | |
tree | 09057ca2cd80f841761f051ea6eb5f45fb5fa167 /gcc/tree-iterator.c | |
parent | 5c3b86aff6041b487f09fe9c4aef6c34034ccd84 (diff) | |
download | gcc-3cb005cf5bc536c0be668c87ead9849eaa74457b.zip gcc-3cb005cf5bc536c0be668c87ead9849eaa74457b.tar.gz gcc-3cb005cf5bc536c0be668c87ead9849eaa74457b.tar.bz2 |
re PR tree-optimization/21921 (internal compiler error: in tsi_link_before, at tree-iterator.c:113)
ChangeLog:
2005-07-13 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/21921
* tree-iterator.c (tsi_link_before): Support the case when
tsi_end_p (tsi) == true.
testsuite/ChangeLog:
2005-07-13 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/21921
* gcc.dg/tree-ssa/pr21921.c: New.
From-SVN: r101970
Diffstat (limited to 'gcc/tree-iterator.c')
-rw-r--r-- | gcc/tree-iterator.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/tree-iterator.c b/gcc/tree-iterator.c index 7913bda..3c2acd3 100644 --- a/gcc/tree-iterator.c +++ b/gcc/tree-iterator.c @@ -110,8 +110,11 @@ tsi_link_before (tree_stmt_iterator *i, tree t, enum tsi_iterator_update mode) } else { - gcc_assert (!STATEMENT_LIST_TAIL (i->container)); - STATEMENT_LIST_HEAD (i->container) = head; + head->prev = STATEMENT_LIST_TAIL (i->container); + if (head->prev) + head->prev->next = head; + else + STATEMENT_LIST_HEAD (i->container) = head; STATEMENT_LIST_TAIL (i->container) = tail; } @@ -127,7 +130,6 @@ tsi_link_before (tree_stmt_iterator *i, tree t, enum tsi_iterator_update mode) i->ptr = tail; break; case TSI_SAME_STMT: - gcc_assert (cur); break; } } |