https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84764
--- Comment #6 from Daniel Lundin <daniel.lundin.mail at gmail dot com> --- Call it what you will, either way there is nothing here that's "so large that it is unsigned". The main point is that the diagnostic message is wrong. typeof(18446744073709551615) x = -1; Gives a 128 bit integer type with the value -1. If it was "so large that it is unsigned" then this would have resulted in an unsigned type with an unsigned value. The diagnostic message is plain wrong and misleading.