diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8ba223fe60fc..a46fe6db2db8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-05-16 Jason Merrill + + PR c++/48999 + * tree-inline.c (copy_statement_list): Put back recursion. + 2011-05-16 Georg-Johann Lay PR target/27663 diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index fc8c88fea9b6..8ac3fed20dd8 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -662,6 +662,11 @@ copy_statement_list (tree *tp) for (; !tsi_end_p (oi); tsi_next (&oi)) { tree stmt = tsi_stmt (oi); + if (TREE_CODE (stmt) == STATEMENT_LIST) + /* This copy is not redundant; tsi_link_after will smash this + STATEMENT_LIST into the end of the one we're building, and we + don't want to do that with the original. */ + copy_statement_list (&stmt); tsi_link_after (&ni, stmt, TSI_CONTINUE_LINKING); } }