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.

Reply via email to