On 30/06/2021 21:56, Martin Sebor via Gcc-patches wrote:
On 6/11/21 8:46 AM, Martin Sebor wrote:
On 6/11/21 3:58 AM, Richard Sandiford wrote:
Martin Sebor via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 7b37e1b602c..7cdc824730c 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -13242,13 +13242,8 @@ bounds_check (rtx operand, HOST_WIDE_INT low, HOST_WIDE_INT high,
    lane = INTVAL (operand);
    if (lane < low || lane >= high)
-    {
-      if (exp)
-    error ("%K%s %wd out of range %wd - %wd",
-           exp, desc, lane, low, high - 1);
-      else
-    error ("%s %wd out of range %wd - %wd", desc, lane, low, high - 1);
-    }
+    error_at (EXPR_LOCATION (exp),
+          "%s %wd out of range %wd - %wd", desc, lane, low, high - 1);
  }
  /* Bounds-check lanes.  */

This part doesn't look safe: “exp” is null when called from arm_const_bounds.

Doh!  Yes, will fix, thanks.

Attached is an updated patch with the test above restored.

Christophe, if you could apply it on top of patches 1 and 2 and run
the aarch64/arm tests that would be great!

Patch 1:
https://gcc.gnu.org/pipermail/gcc-patches/2021-June/573859.html
Patch 2:
https://gcc.gnu.org/pipermail/gcc-patches/2021-June/574088.html


Hi,


I hope I got it right, but there are a few regressions on aarch64/arm:

http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/r12-1929-gf6bc9d9bddad7f9e3aad939bb6750770ac67f003-martin.patch

The patch I applied is https://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/r12-1929-gf6bc9d9bddad7f9e3aad939bb6750770ac67f003-martin.patch/commit.txt


The regressions are the same on aarch64/arm:

  Executed from: gcc.dg/format/format.exp
    gcc.dg/format/c90-printf-1.c    %s with NULL (test for warnings, line 243)
    gcc.dg/format/c90-printf-1.c    (test for excess errors)
    gcc.dg/format/c90-printf-1.c   -DWIDE  %s with NULL (test for warnings, 
line 243)
    gcc.dg/format/c90-printf-1.c   -DWIDE  (test for excess errors)
  Executed from: gcc.dg/dg.exp
    gcc.dg/pr79214.c  (test for warnings, line 25)
    gcc.dg/pr79214.c  (test for warnings, line 30)
    gcc.dg/pr79214.c  (test for warnings, line 35)
    gcc.dg/pr79214.c  (test for warnings, line 40)
    gcc.dg/pr79214.c  (test for warnings, line 45)
    gcc.dg/pr79214.c  (test for warnings, line 52)
    gcc.dg/pr79214.c  (test for warnings, line 59)
    gcc.dg/pr79214.c  (test for warnings, line 66)
    gcc.dg/pr79214.c  (test for warnings, line 73)
    gcc.dg/pr79214.c  (test for warnings, line 80)
    gcc.dg/pr79214.c  (test for warnings, line 87)


If you want to see the corresponding gcc.log, you can click on "log" in the red cells of the top-level report.


HTH


Christophe


Thanks
Martin

Reply via email to