diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-11-10 08:46:31 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-11-10 08:46:31 +0100 |
commit | 416c991fdd5568197d0f545c0e0a2ad3fd577dc6 (patch) | |
tree | 93916a577dc944948c3fc3c3b0feb8354f23744a /gcc/tree-inline.h | |
parent | 6481b879bad720854a3a1f8be3edc2940b3d4085 (diff) | |
download | gcc-416c991fdd5568197d0f545c0e0a2ad3fd577dc6.zip gcc-416c991fdd5568197d0f545c0e0a2ad3fd577dc6.tar.gz gcc-416c991fdd5568197d0f545c0e0a2ad3fd577dc6.tar.bz2 |
re PR middle-end/34018 (ICE: verify_stmts failed)
PR middle-end/34018
* tree-inline.h (copy_body_data): Add regimplify field.
* tree-inline.c (copy_body_r): Set id->regimplify to true
if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
substitutions.
(copy_bb): Clear id->regimplify before walk_tree, if it is
set afterwards, regimplify the whole statement.
* g++.dg/opt/inline14.C: New test.
From-SVN: r130068
Diffstat (limited to 'gcc/tree-inline.h')
-rw-r--r-- | gcc/tree-inline.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h index 895a0af..33eb908 100644 --- a/gcc/tree-inline.h +++ b/gcc/tree-inline.h @@ -92,6 +92,9 @@ typedef struct copy_body_data duplicating BLOCK nodes. */ bool transform_lang_insert_block; + /* True if this statement will need to be regimplified. */ + bool regimplify; + /* Statements that might be possibly folded. */ struct pointer_set_t *statements_to_fold; } copy_body_data; |