https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111689
gyumin <guminb at ajou dot ac.kr> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|INVALID |--- Status|RESOLVED |UNCONFIRMED --- Comment #7 from gyumin <guminb at ajou dot ac.kr> --- Based on your explanation, it seems that hex literals with the LL suffix are treated in the same manner. Essentially, hex literals are always considered as positive values. If the value does not fit within the positive range of a signed long long, it is interpreted as an unsigned long long. For instance, the value 0x8F3700142F89C2A5, even though not being that large of a positive number in reality, is interpreted as an unsigned long long since it exceeds 9,223,372,036,854,775,807. This can be a bit confusing as the literal's value could actually be interpreted as a negative, yet according to the C standard, it is only considered as a positive. And if that positive value exceeds the signed long long range, it is treated as unsigned. Am I understanding this correctly?