[cfe-commits] [Patch] PR11179 - Update StmtPrinter to not complain on some IntegerLiteral types

Richard Smith richard at metafoo.co.uk
Thu Oct 20 16:39:38 PDT 2011


On Fri, October 21, 2011 00:08, Richard Trieu wrote:
> On Thu, Oct 20, 2011 at 2:53 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>> On Thu, October 20, 2011 22:06, Richard Trieu wrote:
>>> Update Clang to not complain when printing IntegerLiterals with type
>>> short, unsigned short, __int128_t, or __uint128_t.  This will fix PR11179.
>>>
>>> PR:
>>> http://llvm.org/bugs/show_bug.cgi?id=11179
>>>
>>>
>>> Patch also located at:
>>> http://codereview.appspot.com/5309045/
>>
>> For __int128_t and __uint128_t, the approach looks fine (though the printed
>>  value should include the "i128" or "Ui128" suffix).
>
> Are those the correct suffixes?  Clang and gcc doesn't recognize them as
> valid integer constant suffixes.

You need -fms-extensions to enable it. Without that extension, there's no way
to write an __int128_t literal.

>> For short and unsigned short, it seems to me that this is a bug in
>> Sema::BuildExpressionFromIntegralTemplateArgument: we shouldn't be creating
>> IntegerLiteral AST nodes with those types (or with negative values, for
>> that matter).
>
> Why can't an integer literal be short or negative?

That's just how the C language family works: there's no way of writing an
integer literal which is negative or short.

Richard




More information about the cfe-commits mailing list