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?

Reply via email to