diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-03-13 00:39:21 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-03-13 00:39:21 +0100 |
commit | 038df1baecf93ad9d17ba7deafb47e99b3e287ad (patch) | |
tree | 50a4b18f4d9d892def8a79913f59eb011ab21f5a /gcc/tree.c | |
parent | 97ca95ac6fb17297f40e160d86c29cbcb3488270 (diff) | |
download | gcc-038df1baecf93ad9d17ba7deafb47e99b3e287ad.zip gcc-038df1baecf93ad9d17ba7deafb47e99b3e287ad.tar.gz gcc-038df1baecf93ad9d17ba7deafb47e99b3e287ad.tar.bz2 |
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
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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: |