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.

Reply via email to