https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90476
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- I don't have the C standard with me, but C++ says: "If the digit sequence specifies zero or a number greater than 2147483647, the behavior is undefined." There's no requirement to issue a diagnostic (which means GCC can accept it with whatever meaning it wants).