On Wed, Nov 21, 2012 at 1:27 PM, Stephen Canon <[email protected]> wrote:
> Hi all --
>
> This patch attempts to clean up the situation for 128-bit and MS-style 
> integer literals, as discussed on cfe-dev back in September ("MS 128-bit 
> literals don't always have the correct type").
>
> Here is the brief overview of the intended changes:
>
>         - The MS suffixes i32 and i64 now mean "give me an integer of exactly 
> this size" rather than "of at least this size", as indicated by tests 
> performed by various people and reported in the September thread.
>         - The i128 suffix has been eliminated, as MSVC never actually 
> supported it; it seems to have snuck into the clang codebase at some point in 
> the hazy past.
>         - On targets that support i128 (LP64 targets), literals that are too 
> large to fit into [unsigned] long long become [unsigned] i128, as allowed by 
> the paragraphs on "extended integer types" in the C and C++ standards.  We 
> issue a warning in such cases because clang will differ from GCC.

This seems to violate the C requirement that intmax_t is able to
represent any signed integer value, etc.

-Eli

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to