https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115161
--- Comment #15 from Sergei Trofimovich <slyfox at gcc dot gnu.org> --- > I shrunk bug.cc slightly further into shorter-bug.cc and now it fails > equally on gcc-13 and gcc-15. I agree that gcc-15 just got more constant > folds available now, but otherwise it's behaviour did not change. > > But is it correct? Specifically -O0 works: $ /tmp/gb/gcc/xg++ -Wall -B/tmp/gb/gcc bug.cc -o bug -O0 && ./bug overflow(i): 0xffffffffffffffff 0xffffffffffffffff And -O2 crashes: $ /tmp/gb/gcc/xg++ -Wall -B/tmp/gb/gcc bug.cc -o bug -O2 && ./bug overflow(i): 0xffffffffffffffff 0xffffffffffffffff Illegal instruction (core dumped)