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

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu Mar 28 16:07:05 PDT 2013


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



More information about the cfe-commits mailing list