r178297 - [sema] Check the result of getAsCXXRecordDecl() to fix the build

Reid Kleckner rnk at google.com
Thu Mar 28 16:13:01 PDT 2013


It was found by the suite and I just committed more tests.


On Thu, Mar 28, 2013 at 4:07 PM, Rafael EspĂ­ndola <
rafael.espindola at gmail.com> wrote:

> testcase?
>
> On 28 March 2013 15:15, Reid Kleckner <reid at kleckner.net> wrote:
> > Author: rnk
> > Date: Thu Mar 28 17:15:11 2013
> > New Revision: 178297
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=178297&view=rev
> > Log:
> > [sema] Check the result of getAsCXXRecordDecl() to fix the build
> >
> > I'm not 100% sure what should happen here to find the real
> > CXXRecordDecl.
> >
> > Modified:
> >     cfe/trunk/lib/Sema/SemaType.cpp
> >
> > Modified: cfe/trunk/lib/Sema/SemaType.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=178297&r1=178296&r2=178297&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/lib/Sema/SemaType.cpp (original)
> > +++ cfe/trunk/lib/Sema/SemaType.cpp Thu Mar 28 17:15:11 2013
> > @@ -1733,12 +1733,12 @@ QualType Sema::BuildMemberPointerType(Qu
> >    // when passing pointers between TUs that disagree about the size.
> >    if (Context.getTargetInfo().getCXXABI().isMicrosoft()) {
> >      CXXRecordDecl *RD = Class->getAsCXXRecordDecl();
> > -    if (!RD->hasAttr<MSInheritanceAttr>()) {
> > +    if (!RD || !RD->hasAttr<MSInheritanceAttr>()) {
> >        // Lock in the inheritance model on the first use of a member
> pointer.
> >        // Otherwise we may disagree about the size at different points
> in the TU.
> >        // FIXME: MSVC picks a model on the first use that needs to know
> the size,
> >        // rather than on the first mention of the type, e.g. typedefs.
> > -      if (RequireCompleteType(Loc, Class, 0) && !RD->isBeingDefined()) {
> > +      if (RequireCompleteType(Loc, Class, 0) && RD &&
> !RD->isBeingDefined()) {
> >          // We know it doesn't have an attribute and it's incomplete, so
> use the
> >          // unspecified inheritance model.  If we're in the record body,
> we can
> >          // figure out the inheritance model.
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > cfe-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130328/55b18c36/attachment.html>


More information about the cfe-commits mailing list