[committed] Fix signed char test assumption [Was Re: [Linaro-TCWG-CI] gcc-17-2261-g649b2a6d9f9f: 7 regressions on arm]

Message ID fd3dee60-dedf-4d97-aebe-846d7a6e0b85@oss.qualcomm.com
State Committed
Headers
Series [committed] Fix signed char test assumption [Was Re: [Linaro-TCWG-CI] gcc-17-2261-g649b2a6d9f9f: 7 regressions on arm] |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gcc_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_simplebootstrap_build--master-aarch64-bootstrap fail Patch failed to apply
linaro-tcwg-bot/tcwg_simplebootstrap_build--master-arm-bootstrap fail Patch failed to apply

Commit Message

Jeffrey Law July 17, 2026, 1:17 p.m. UTC
  On 7/9/2026 4:56 PM, ci_notify@linaro.org wrote:
> Dear contributor,
>
> Our automatic CI has detected problems related to your patch(es). Please find some details below.
>
> In  armv8l-unknown-linux-gnueabihf native, after:
>    | commit gcc-17-2261-g649b2a6d9f9f
>    | Author: Jeff Law <jeffrey.law@oss.qualcomm.com>
>    | Date:   Wed Jul 8 12:30:56 2026 -0600
>    |
>    |     [PR rtl-optimization/126136] Fix dest = cond ? x : -1 when STORE_FLAG_VALUE is -1
>    |
>    |     So a while back I added support for selecting x/-1 into the ifcvt.cc by using
>    |     scc and a couple ALU operations.  That code explicitly rejects STORE_FLAG_VALUE
>    |     if it is not 1 or -1.
>    | ... 20 lines of the commit log omitted.
>
> Produces 7 regressions:
>    |
>    | regressions.sum:
>    | Running gcc:gcc.dg/torture/dg-torture.exp ...
>    | FAIL: gcc.dg/torture/pr126136.c -O0  execution test
>    | FAIL: gcc.dg/torture/pr126136.c -O1  execution test
>    | FAIL: gcc.dg/torture/pr126136.c -O2  execution test
>    | FAIL: gcc.dg/torture/pr126136.c -O2 -flto -fno-use-linker-plugin -flto-partition=none  execution test
>    | ... and 3 more
>
> Used configuration :
>   *CI config* tcwg_gcc_check armv8l-unknown-linux-gnueabihf
>   *configure and test flags:* none, autodetected on armv8l-unknown-linux-gnueabihf--disable-multilib --with-float=hard --with-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a --with-fpu=neon-fp-armv8
>
> We track this bug report under https://linaro.atlassian.net/browse/GNU-1959. (Require Linaro login) Please let us know if you have a fix.

As others noted, this is a case where the test assumed signed chars.  
The patch makes the signedness explicit.

Bootstrapped and regression tested on armv7 and verified the test now 
passes on that platform.  Pushing to the trunk.

jeff
gcc/testsuite

	* gcc.dg/torture/pr126136: Make chars explicitly signed.
  

Patch

diff --git a/gcc/testsuite/gcc.dg/torture/pr126136.c b/gcc/testsuite/gcc.dg/torture/pr126136.c
index cc270f51ca2..0ab01a45d49 100644
--- a/gcc/testsuite/gcc.dg/torture/pr126136.c
+++ b/gcc/testsuite/gcc.dg/torture/pr126136.c
@@ -3,7 +3,7 @@ 
 int i;
 
 __attribute__ ((noipa,noclone,noinline))
-char foo(char val)
+signed char foo(signed char val)
 {
   i++;
   if (i > 1)