aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-12-01 14:22:50 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-12-01 14:22:50 +0000
commitee0192a223e13a84120ccecb628d2350e5c53efb (patch)
treefbdd945716386e1b08dca6a829800dd13511c1de /gcc
parent6009ee7b4164ad1ee395b6fe013b7c7037932e57 (diff)
downloadgcc-ee0192a223e13a84120ccecb628d2350e5c53efb.zip
gcc-ee0192a223e13a84120ccecb628d2350e5c53efb.tar.gz
gcc-ee0192a223e13a84120ccecb628d2350e5c53efb.tar.bz2
tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK to the block of the call when remapping a type.
2009-12-01 Richard Guenther <rguenther@suse.de> * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK to the block of the call when remapping a type. From-SVN: r154873
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-inline.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f4cd281..939b7bc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-01 Richard Guenther <rguenther@suse.de>
+
+ * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
+ to the block of the call when remapping a type.
+
2009-12-01 Martin Jambor <mjambor@suse.cz>
* cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 10baf62..3c90941 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1093,10 +1093,10 @@ copy_tree_body_r (tree *tp, int *walk_subtrees, void *data)
/* If EXPR has block defined, map it to newly constructed block.
When inlining we want EXPRs without block appear in the block
- of function call. */
+ of function call if we are not remapping a type. */
if (EXPR_P (*tp))
{
- new_block = id->block;
+ new_block = id->remapping_type_depth == 0 ? id->block : NULL;
if (TREE_BLOCK (*tp))
{
tree *n;