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

Chad Rosier mcrosier at apple.com
Mon Feb 27 12:10:20 PST 2012


On Feb 27, 2012, at 12:02 PM, Richard Smith <richard at metafoo.co.uk> wrote:

> On Mon, Feb 27, 2012 at 6:21 AM, Benjamin Kramer <benny.kra at googlemail.com> wrote:
> 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.
> 
> Chad has observed an MSVC buildbot failure between r151468 and r151514. The RefQualifier bitfield isn't wide enough to avoid the sign extension issue: RefQualifierKind has 3 distinct values. (Takumi's MSVC10 buildbot is green, though, so maybe MSVC10 fixes the signed enum bitfield bug?)
> 
> I've increased that bitfield to 3 bits in r151544. Hopefully that'll fix the issue.

Thanks, Richard!  I'll let you know if this resolves the issue once the bot catches up.

> - Richard

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120227/911d6611/attachment.html>


More information about the cfe-commits mailing list