From 05539e47c46349dee0a9e2cccf8dd6eb7ec33d36 Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Mon, 9 May 2011 18:36:31 +0000 Subject: [PATCH] * fold-const.c (fold_range_test): Pass LOC to build_range_check. (fold_ternary_loc): Use expr_location_or. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173588 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 11 ++++++++--- gcc/fold-const.c | 18 +++++------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bf217bd..3a94b94 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-05-09 Eric Botcazou + + * fold-const.c (fold_range_test): Pass LOC to build_range_check. + (fold_ternary_loc): Use expr_location_or. + 2011-05-09 H.J. Lu PR debug/48853 @@ -5,10 +10,10 @@ POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is Pmode and mem_mode is not VOIDmode. -2011-05-08 Ville Voutilainen +2011-05-09 Ville Voutilainen - * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST): Convert to enum. - (TYPE_QUAL_VOLATILE, TYPE_QUAL_RESTRICT): Likewise. + * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, + TYPE_QUAL_RESTRICT): Convert to enum. 2011-05-09 Uros Bizjak diff --git a/gcc/fold-const.c b/gcc/fold-const.c index a42921b..ab68eab 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -4822,7 +4822,7 @@ fold_range_test (location_t loc, enum tree_code code, tree type, if ((lhs == 0 || rhs == 0 || operand_equal_p (lhs, rhs, 0)) && merge_ranges (&in_p, &low, &high, in0_p, low0, high0, in1_p, low1, high1) - && 0 != (tem = (build_range_check (UNKNOWN_LOCATION, type, + && 0 != (tem = (build_range_check (loc, type, lhs != 0 ? lhs : rhs != 0 ? rhs : integer_zero_node, in_p, low, high)))) @@ -13332,9 +13332,7 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type, TREE_OPERAND (arg0, 1)) && !HONOR_SIGNED_ZEROS (TYPE_MODE (TREE_TYPE (op2)))) { - location_t loc0 = EXPR_LOCATION (arg0); - if (loc0 == UNKNOWN_LOCATION) - loc0 = loc; + location_t loc0 = expr_location_or (arg0, loc); tem = fold_truth_not_expr (loc0, arg0); if (tem && COMPARISON_CLASS_P (tem)) { @@ -13349,9 +13347,7 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type, if (truth_value_p (TREE_CODE (arg0)) && tree_swap_operands_p (op1, op2, false)) { - location_t loc0 = EXPR_LOCATION (arg0); - if (loc0 == UNKNOWN_LOCATION) - loc0 = loc; + location_t loc0 = expr_location_or (arg0, loc); /* See if this can be inverted. If it can't, possibly because it was a floating-point inequality comparison, don't do anything. */ @@ -13500,9 +13496,7 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type, && truth_value_p (TREE_CODE (arg0)) && truth_value_p (TREE_CODE (arg1))) { - location_t loc0 = EXPR_LOCATION (arg0); - if (loc0 == UNKNOWN_LOCATION) - loc0 = loc; + location_t loc0 = expr_location_or (arg0, loc); /* Only perform transformation if ARG0 is easily inverted. */ tem = fold_truth_not_expr (loc0, arg0); if (tem) @@ -13516,9 +13510,7 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type, && truth_value_p (TREE_CODE (arg0)) && truth_value_p (TREE_CODE (op2))) { - location_t loc0 = EXPR_LOCATION (arg0); - if (loc0 == UNKNOWN_LOCATION) - loc0 = loc; + location_t loc0 = expr_location_or (arg0, loc); /* Only perform transformation if ARG0 is easily inverted. */ tem = fold_truth_not_expr (loc0, arg0); if (tem) -- 2.7.4