https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97534

--- Comment #5 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
No, I don't think it's related to that, in fact, I think this is just a latent
bug that's been in the code for a long time.

At one point we have a 32-bit signed integer containing INT_MIN, which is
internally represented as a 64-bit constant 0xffffffff80000000; we try to
negate that (so that we can use addition) and end up with 0x0000000080000000,
but that's not a canonical value for internal use on an SImode value (they need
to be sign-extended) and eventually this causes the compiler to trip over its
own feet.

I'm testing a patch.

Reply via email to