[cfe-commits] r151494 - /cfe/trunk/include/clang/AST/Type.h

Benjamin Kramer benny.kra at googlemail.com
Mon Feb 27 06:21:09 PST 2012


On 26.02.2012, at 23:15, Eli Friedman wrote:

> On Sun, Feb 26, 2012 at 8:55 AM, Benjamin Kramer
> <benny.kra at googlemail.com> wrote:
>> Author: d0k
>> Date: Sun Feb 26 10:55:55 2012
>> New Revision: 151494
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=151494&view=rev
>> Log:
>> Bit pack ExtProtoInfo.
>> 
>> Modified:
>>    cfe/trunk/include/clang/AST/Type.h
>> 
>> Modified: cfe/trunk/include/clang/AST/Type.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=151494&r1=151493&r2=151494&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/AST/Type.h (original)
>> +++ cfe/trunk/include/clang/AST/Type.h Sun Feb 26 10:55:55 2012
>> @@ -2699,15 +2699,15 @@
>>   struct ExtProtoInfo {
>>     ExtProtoInfo() :
>>       Variadic(false), HasTrailingReturn(false), ExceptionSpecType(EST_None),
>> -      TypeQuals(0), RefQualifier(RQ_None), NumExceptions(0), Exceptions(0),
>> +      RefQualifier(RQ_None), TypeQuals(0), NumExceptions(0), Exceptions(0),
>>       NoexceptExpr(0), ConsumedArguments(0) {}
>> 
>>     FunctionType::ExtInfo ExtInfo;
>> -    bool Variadic;
>> -    bool HasTrailingReturn;
>> -    ExceptionSpecificationType ExceptionSpecType;
>> +    bool Variadic : 1;
>> +    bool HasTrailingReturn : 1;
>> +    ExceptionSpecificationType ExceptionSpecType : 4;
>> +    RefQualifierKind RefQualifier : 2;
> 
> Are you sure this won't cause issues with MSVC?  It handles enums in
> bitfields in a non-standard way…

The bit fields should be wide enough not to be affected by MSVC's sign extension weirdness. And the buildbot is still green.

However, we can revert this change if something pops up, the size of this struct isn't critical.

- Ben
> 
> -Eli





More information about the cfe-commits mailing list