diff options
| -rw-r--r-- | gcc/ChangeLog | 1 | ||||
| -rw-r--r-- | gcc/tree.c | 11 |
2 files changed, 7 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 603f5f6..b54350e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,7 @@ 2008-05-19 Eric Botcazou <ebotcazou@adacore.com> * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko. + (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak. 2008-05-19 H.J. Lu <hongjiu.lu@intel.com> @@ -2778,18 +2778,19 @@ substitute_placeholder_in_expr (tree exp, tree obj) { tree copy = NULL_TREE; int i; - int n = TREE_OPERAND_LENGTH (exp); - for (i = 1; i < n; i++) + + for (i = 1; i < TREE_OPERAND_LENGTH (exp); i++) { tree op = TREE_OPERAND (exp, i); - tree newop = SUBSTITUTE_PLACEHOLDER_IN_EXPR (op, obj); - if (newop != op) + tree new_op = SUBSTITUTE_PLACEHOLDER_IN_EXPR (op, obj); + if (new_op != op) { if (!copy) copy = copy_node (exp); - TREE_OPERAND (copy, i) = newop; + TREE_OPERAND (copy, i) = new_op; } } + if (copy) return fold (copy); else |
