summaryrefslogtreecommitdiff
path: root/gcc/tree-inline.h
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2007-11-10 07:46:31 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2007-11-10 07:46:31 +0000
commit3d053ea5c19cfe989d10c3d847d0bbe1c73a7386 (patch)
tree93916a577dc944948c3fc3c3b0feb8354f23744a /gcc/tree-inline.h
parent69a837167a2ec4f5c8f7d92c1713561e69a1c6b2 (diff)
downloadgcc-3d053ea5c19cfe989d10c3d847d0bbe1c73a7386.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130068 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.h')
-rw-r--r--gcc/tree-inline.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h
index 895a0afcbbd..33eb908b7cd 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;