Fix c/c-array-notation.c compilation failure (PR bootstrap/57450)
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 29 May 2013 15:00:29 +0000 (15:00 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Wed, 29 May 2013 15:00:29 +0000 (15:00 +0000)
PR bootstrap/57450
* c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
(build_array_notation_expr): Likewise.

From-SVN: r199410

gcc/c/ChangeLog
gcc/c/c-array-notation.c

index d6d9856..d33fa2b 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR bootstrap/57450
+       * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi.
+       (build_array_notation_expr): Likewise.
+
 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
 
        * c-typeck.c (build_array_ref): Added a check to see if array's
index c70345c..bf139a8 100644 (file)
@@ -116,7 +116,7 @@ length_mismatch_in_expr_p (location_t loc, tree **list, size_t x, size_t y)
                {
                  l_node = int_cst_value (list[ii][jj]);
                  l_start = int_cst_value (start);
-                 if (abs (l_start) != abs (l_node))
+                 if (absu_hwi (l_start) != absu_hwi (l_node))
                    {
                      error_at (loc, "length mismatch in expression");
                      return true;
@@ -1561,7 +1561,7 @@ build_array_notation_expr (location_t location, tree lhs, tree lhs_origtype,
       HOST_WIDE_INT r_length = int_cst_value (rhs_length[0][0]);
       /* Length can be negative or positive.  As long as the magnitude is OK,
         then the array notation is valid.  */
-      if (abs (l_length) != abs (r_length))
+      if (absu_hwi (l_length) != absu_hwi (r_length))
        {
          error_at (location, "length mismatch between LHS and RHS");
          pop_stmt_list (an_init);