fold-const.c (fold_range_test): Pass LOC to build_range_check.
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 9 May 2011 18:36:31 +0000 (18:36 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 9 May 2011 18:36:31 +0000 (18:36 +0000)
* fold-const.c (fold_range_test): Pass LOC to build_range_check.
(fold_ternary_loc): Use expr_location_or.

From-SVN: r173588

gcc/ChangeLog
gcc/fold-const.c

index bf217bd34378cca25b84806d5b17dfecdcf78b0e..3a94b94328fe3014c38217f68fbc55684dccb736 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * 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  <hongjiu.lu@intel.com>
 
        PR debug/48853
        POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
        Pmode and mem_mode is not VOIDmode.
 
-2011-05-08  Ville Voutilainen  <ville.voutilainen@gmail.com>
+2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
 
-       * 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  <ubizjak@gmail.com>
 
index a42921b685873b4cd8dbbf41682fb720796e4a5e..ab68eab990cc0bd692d45246c798c53d4e87d565 100644 (file)
@@ -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)