[cfe-dev] Adding more info to builtin source types.
Douglas Gregor
dgregor at apple.com
Mon Jan 18 12:39:58 PST 2010
On Jan 18, 2010, at 11:39 AM, Enea Zaffanella wrote:
> Douglas Gregor wrote:
>> Hello Enea,
>
> [...]
>
>> Okay, great. I committed your patch here:
>> http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20100118/026437.html
>> with a couple of tweaks:
>
> [...]
>
>> + bool needsExtraLocalData() const {
>> + BuiltinType::Kind bk = getTypePtr()->getKind();
>> + return (bk >= BuiltinType::UShort && bk <= BuiltinType::UInt128)
>> + || (bk >= BuiltinType::Short && bk <= BuiltinType::LongDouble)
>> + || bk == BuiltinType::UChar
>> + || bk == BuiltinType::SChar;
>> + }
>> "float", "double", and "long double" don't need any extra data,
>> since we'll always have a location for the type specifier (float or
>> double) and the type is never implied by either a sign or a width.
>
> Actually, the use of 'mode' attributes can change the width of
> floating point types, hence the need to store, even in this case,
> the written type specifier, the written width specifier and a
> Boolean flag for the presence of any 'mode' attribute.
Oh, I understand now, thanks. Fixed here:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20100118/026449.html
- Doug
More information about the cfe-dev
mailing list