https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114793
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Zhendong Su from comment #1) > The following reproducer is different, but perhaps is the same or related. > > Compiler Explorer: https://godbolt.org/z/411rzMP1n > > [588] % gcctk -v > Using built-in specs. > COLLECT_GCC=gcctk > COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/ > x86_64-pc-linux-gnu/14.0.1/lto-wrapper > Target: x86_64-pc-linux-gnu > Configured with: ../gcc-trunk/configure --disable-bootstrap > --enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk > --enable-sanitizers --enable-languages=c,c++ --disable-werror > --enable-multilib > Thread model: posix > Supported LTO compression algorithms: zlib > gcc version 14.0.1 20240421 (experimental) (GCC) > [589] % > [589] % gcctk -O1 -fno-tree-forwprop -fselective-scheduling2 > -fschedule-insns2 -fsel-sched-pipelining small.c > [590] % ./a.out > Aborted > [591] % > [591] % cat small.c > int printf(const char *, ...); > int a, d, g, h; > volatile int b = 1; > static unsigned c = 1; > char e, f = 1, i; > static int j() { > int k, l = g, m = 1 << l, n = -e, o = -1 % ((f && 1) ^ i), p = ~n - o; > if (m) { > int q, s, t, r = 1 % (((1 % f) & (~e | c)) ^ b); > q = f; > s = i; > t = e; > f = -b; > k = f; > d = -1; > u: > e = 0 & b; > if (i > f) > if (!b) > goto v; > if (d > t) > __builtin_abort(); > if (b < 1 || !d || !c) { > printf("%d\n", i); > f = ((i | b) & (k - r)) << (e << ~t ^ q) << s; > goto u; > } > if (i) > f = q; > v: > i = n & o & l; > printf("%ld\n", (long)t); > } > i = p; > return h; > } > int main() { > for (; a < 3; a++) > j(); > return 0; > } This is caused by r14-2524.