summaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-03 13:14:48 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-03 13:14:48 +0000
commite660f7eeca5986b291ed0deede7cdeed73331231 (patch)
treeb55774ea0747b870b4a0a61bdf00cc381966a112 /gcc/gimplify.c
parent54362c0fa7e47e08b0c9320be3589a2b1c49fbb9 (diff)
downloadgcc-e660f7eeca5986b291ed0deede7cdeed73331231.tar.gz
* gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161774 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index a9c93ac972d..9eb8fa70d3e 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -868,9 +868,9 @@ mostly_copy_tree_r (tree *tp, int *walk_subtrees, void *data)
tree t = *tp;
enum tree_code code = TREE_CODE (t);
- /* Do not copy SAVE_EXPR or TARGET_EXPR nodes themselves, but copy
- their subtrees if we can make sure to do it only once. */
- if (code == SAVE_EXPR || code == TARGET_EXPR)
+ /* Do not copy SAVE_EXPR, TARGET_EXPR or BIND_EXPR nodes themselves, but
+ copy their subtrees if we can make sure to do it only once. */
+ if (code == SAVE_EXPR || code == TARGET_EXPR || code == BIND_EXPR)
{
if (data && !pointer_set_insert ((struct pointer_set_t *)data, t))
;
@@ -895,10 +895,7 @@ mostly_copy_tree_r (tree *tp, int *walk_subtrees, void *data)
/* Leave the bulk of the work to copy_tree_r itself. */
else
- {
- gcc_assert (code != BIND_EXPR);
- copy_tree_r (tp, walk_subtrees, NULL);
- }
+ copy_tree_r (tp, walk_subtrees, NULL);
return NULL_TREE;
}