On Tue, Oct 07, 2025 at 08:37:52AM +0800, H.J. Lu wrote:
> The new test failed on Linux/x86-64 with -m32:

Ran into the same.

The test FAILs on ilp32 targets with
pr121987.c:5:21: warning: unsigned conversion from 'long long int' to 'long 
unsigned int' changes value from '10000000000' to '1410065408' [-Woverflow]
excess error.  Fixed by using unsigned long long instead of unsigned and
using a suffix on the constant.
Tested on x86_64-linux with -m32/-m64, additionally tested with older cc1
where it ICEd in both cases in upper_bound.

Committed to trunk as obvious.

2025-10-08  Jakub Jelinek  <[email protected]>

        PR tree-optimization/121206
        * gcc.dg/pr121987.c (main): Use unsigned long long type for e instead
        of unsigned long and use ULL suffix on the initializer.

--- gcc/testsuite/gcc.dg/pr121987.c.jj  2025-10-08 09:24:15.133331732 +0200
+++ gcc/testsuite/gcc.dg/pr121987.c     2025-10-08 09:42:01.330619972 +0200
@@ -2,7 +2,7 @@
 /* { dg-options "-O3" } */
 int a, b, c, d;
 int main() {
-  unsigned long e = 10000000000;
+  unsigned long long e = 10000000000ULL;
   unsigned f;
   int g;
   while (a) {


        Jakub

Reply via email to