https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79788
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- if ((int128_t) p >= -9223372036854775808 - (int128_t) (signed char) g) That looks just wrong, I thought with -m32 we don't support int128_t, so there should be no computations in that type, even when we have too large constant. void bar (void); void foo (long long int p, long long int q) { if (p >= 1234567891234567891234567891234567812 + q) bar (); } Apparently we emit int128 arithmetics though, it works even with -fsanitize=undefined, or with -fwrapv, but not -ftrapv.