aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-05-16 10:30:30 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-05-16 10:30:30 -0400
commit62e36382018b546b0ad24ff4c01edd7ef6f373fe (patch)
treef298b6a8ab665cca059213feb203fba548eb4643 /gcc/tree-inline.c
parent687027a4d55c087c933ef94868ff5450311e98ca (diff)
downloadgcc-62e36382018b546b0ad24ff4c01edd7ef6f373fe.zip
gcc-62e36382018b546b0ad24ff4c01edd7ef6f373fe.tar.gz
gcc-62e36382018b546b0ad24ff4c01edd7ef6f373fe.tar.bz2
re PR c++/48999 (FAIL: g++.dg/torture/20090706-1.C due to an ICE on *-*-darwin*)
PR c++/48999 * tree-inline.c (copy_statement_list): Put back recursion. From-SVN: r173793
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index fc8c88f..8ac3fed 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);
}
}