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
