On 7/1/21 2:01 AM, Christophe LYON wrote:

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:

Thanks!


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)

The location of the warning has improved here leading to the test
failing where it looks for it in the wrong place (wrong column).
This is (or will be) fixed in the final patch by adjusting the test.



   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)

This is also expected (on all targets) and something I'll deal with
before committing.



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

Your results validate the aarch64 and arm changes so they're all
I needed.

Thanks again for your help!

Martin



HTH


Christophe


Thanks
Martin

Reply via email to