From 038df1baecf93ad9d17ba7deafb47e99b3e287ad Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 13 Mar 2018 00:39:21 +0100 Subject: re PR c++/84704 (internal compiler error: gimplification failed) PR c++/84704 * tree.c (stabilize_reference_1): Return save_expr (e) for STATEMENT_LIST even if it doesn't have side-effects. * g++.dg/debug/pr84704.C: New test. From-SVN: r258470 --- gcc/tree.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/tree.c') diff --git a/gcc/tree.c b/gcc/tree.c index 63a29f4..1e1a1be 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -4352,6 +4352,11 @@ stabilize_reference_1 (tree e) switch (TREE_CODE_CLASS (code)) { case tcc_exceptional: + /* Always wrap STATEMENT_LIST into SAVE_EXPR, even if it doesn't + have side-effects. */ + if (code == STATEMENT_LIST) + return save_expr (e); + /* FALLTHRU */ case tcc_type: case tcc_declaration: case tcc_comparison: -- cgit v1.1