> Oh, do you have a testcase suitable for the testsuite? C guality testcase attached, it fails on x86/Linux with -m32 on the gcc-12 branch (which does not have the fix): FAIL: gcc.dg/guality/param-6.c -O1 -DPREVENT_OPTIMIZATION line 15 i == 5 FAIL: gcc.dg/guality/param-6.c -O2 -DPREVENT_OPTIMIZATION line 15 i == 5 FAIL: gcc.dg/guality/param-6.c -O3 -g -DPREVENT_OPTIMIZATION line 15 i == 5 FAIL: gcc.dg/guality/param-6.c -Os -DPREVENT_OPTIMIZATION line 15 i == 5 FAIL: gcc.dg/guality/param-6.c -O2 -flto -fno-use-linker-plugin -flto- partition=none -DPREVENT_OPTIMIZATION line 15 i == 5 FAIL: gcc.dg/guality/param-6.c -O2 -flto -fuse-linker-plugin -fno-fat-lto- objects -DPREVENT_OPTIMIZATION line 15 i == 5 but passes on the mainline (which has the fix) and on the gcc-11 branch (which does not have the issue). The fix also eliminates other regressions: -FAIL: gcc.dg/guality/drap.c -Os -DPREVENT_OPTIMIZATION line 21 a == 5 -FAIL: gcc.dg/guality/drap.c -Os -DPREVENT_OPTIMIZATION line 22 b == 6 -FAIL: gcc.dg/guality/pr43051-1.c -Os -DPREVENT_OPTIMIZATION line 35 v == 1 -FAIL: gcc.dg/guality/pr43051-1.c -Os -DPREVENT_OPTIMIZATION line 36 e == &a[1] -FAIL: gcc.dg/guality/pr43051-1.c -Os -DPREVENT_OPTIMIZATION line 40 v == 1 -FAIL: gcc.dg/guality/pr43051-1.c -Os -DPREVENT_OPTIMIZATION line 41 e == &a[1] -FAIL: gcc.dg/guality/pr43177.c -Os -DPREVENT_OPTIMIZATION line 15 x == 7 -FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 20 y == 25 -FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 20 z == 6 -FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 23 y == 117 -FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 23 z == 8 -FAIL: gcc.dg/guality/pr54519-4.c -Os -DPREVENT_OPTIMIZATION line 17 y == 25 -FAIL: gcc.dg/guality/pr54796.c -O1 -DPREVENT_OPTIMIZATION line 17 a == 5 -FAIL: gcc.dg/guality/pr54796.c -O1 -DPREVENT_OPTIMIZATION line 17 b == 6 -FAIL: gcc.dg/guality/pr54796.c -O1 -DPREVENT_OPTIMIZATION line 17 c == 5 -FAIL: gcc.dg/guality/pr54796.c -O2 -DPREVENT_OPTIMIZATION line 17 a == 5 -FAIL: gcc.dg/guality/pr54796.c -O2 -DPREVENT_OPTIMIZATION line 17 b == 6 -FAIL: gcc.dg/guality/pr54796.c -O2 -DPREVENT_OPTIMIZATION line 17 c == 5 -FAIL: gcc.dg/guality/pr54796.c -O3 -g -DPREVENT_OPTIMIZATION line 17 a == 5 -FAIL: gcc.dg/guality/pr54796.c -O3 -g -DPREVENT_OPTIMIZATION line 17 b == 6 -FAIL: gcc.dg/guality/pr54796.c -O3 -g -DPREVENT_OPTIMIZATION line 17 c == 5 -FAIL: gcc.dg/guality/pr54796.c -Os -DPREVENT_OPTIMIZATION line 17 a == 5 -FAIL: gcc.dg/guality/pr54796.c -Os -DPREVENT_OPTIMIZATION line 17 b == 6 -FAIL: gcc.dg/guality/pr54796.c -Os -DPREVENT_OPTIMIZATION line 17 c == 5 -FAIL: gcc.dg/guality/pr54796.c -O2 -flto -fno-use-linker-plugin -flto- partition=none -DPREVENT_OPTIMIZATION line 17 a == 5 -FAIL: gcc.dg/guality/pr54796.c -O2 -flto -fno-use-linker-plugin -flto- partition=none -DPREVENT_OPTIMIZATION line 17 b == 6 -FAIL: gcc.dg/guality/pr54796.c -O2 -flto -fno-use-linker-plugin -flto- partition=none -DPREVENT_OPTIMIZATION line 17 c == 5 -FAIL: gcc.dg/guality/sra-1.c -Os -DPREVENT_OPTIMIZATION line 43 a.j == 14 -FAIL: gcc.dg/guality/vla-1.c -O1 -DPREVENT_OPTIMIZATION line 24 i == 5 -FAIL: gcc.dg/guality/vla-1.c -O2 -DPREVENT_OPTIMIZATION line 24 i == 5 -FAIL: gcc.dg/guality/vla-1.c -O3 -g -DPREVENT_OPTIMIZATION line 24 i == 5 -FAIL: gcc.dg/guality/vla-1.c -Os -DPREVENT_OPTIMIZATION line 24 i == 5 -FAIL: gcc.dg/guality/vla-1.c -O2 -flto -fno-use-linker-plugin -flto- partition=none -DPREVENT_OPTIMIZATION line 24 i == 5 present on the gcc-12 branch wrt the gcc-11 branch (apparently nobody really cares about the guality testsuite on x86/Linux). * gcc.dg/guality/param-6.c: New test. -- Eric Botcazou