diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2008-05-19 21:42:48 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2008-05-19 21:42:48 +0000 |
commit | df8e1fdc2cd3458d025866900bb232fe7afe5ac6 (patch) | |
tree | 17641e86b48e5e704541c4d4f59337e76784056c /gcc | |
parent | 06a5f1ecae0873029a87eb624966143955a853f9 (diff) | |
download | gcc-df8e1fdc2cd3458d025866900bb232fe7afe5ac6.zip gcc-df8e1fdc2cd3458d025866900bb232fe7afe5ac6.tar.gz gcc-df8e1fdc2cd3458d025866900bb232fe7afe5ac6.tar.bz2 |
tree.c (substitute_in_expr): Fix thinko.
* tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
From-SVN: r135582
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/tree.c | 13 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8ed8a8a..e9edd79 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2008-05-19 Eric Botcazou <ebotcazou@adacore.com> + + * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko. + 2008-05-19 H.J. Lu <hongjiu.lu@intel.com> * gcc/config/i386/i386.c (ix86_expand_vector_init_concat): Change @@ -2516,8 +2516,7 @@ substitute_in_expr (tree exp, tree f, tree r) { enum tree_code code = TREE_CODE (exp); tree op0, op1, op2, op3; - tree new; - tree inner; + tree new, inner; /* We handle TREE_LIST and COMPONENT_REF separately. */ if (code == TREE_LIST) @@ -2627,13 +2626,15 @@ substitute_in_expr (tree exp, tree f, tree r) for (i = 1; i < TREE_OPERAND_LENGTH (exp); i++) { tree op = TREE_OPERAND (exp, i); - tree newop = SUBSTITUTE_IN_EXPR (op, f, r); - if (newop != op) + tree new_op = SUBSTITUTE_IN_EXPR (op, f, r); + if (new_op != op) { - copy = copy_node (exp); - TREE_OPERAND (copy, i) = newop; + if (!copy) + copy = copy_node (exp); + TREE_OPERAND (copy, i) = new_op; } } + if (copy) new = fold (copy); else |