https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97884
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> --- But INT_MIN in C is (-2147483647 - 1) for 32-bit ints, not -2147483648, as has been explained, there is a significant difference for those two, because 2147483648 constant is not representable in int and therefore the constant gets a different type and the negation preserves that type. If something defines INT_MIN to -2147483648, the bug is in whatever defines it that way.