diff options
Diffstat (limited to 'clang/lib/Sema/SemaCUDA.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCUDA.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/clang/lib/Sema/SemaCUDA.cpp b/clang/lib/Sema/SemaCUDA.cpp index fbf64d3..2e3cbb3 100644 --- a/clang/lib/Sema/SemaCUDA.cpp +++ b/clang/lib/Sema/SemaCUDA.cpp @@ -421,13 +421,10 @@ bool SemaCUDA::inferTargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl, } for (const auto *B : Bases) { - const RecordType *BaseType = B->getType()->getAs<RecordType>(); - if (!BaseType) { + auto *BaseClassDecl = B->getType()->getAsCXXRecordDecl(); + if (!BaseClassDecl) continue; - } - CXXRecordDecl *BaseClassDecl = - cast<CXXRecordDecl>(BaseType->getOriginalDecl())->getDefinitionOrSelf(); Sema::SpecialMemberOverloadResult SMOR = SemaRef.LookupSpecialMember(BaseClassDecl, CSM, /* ConstArg */ ConstRHS, @@ -466,15 +463,11 @@ bool SemaCUDA::inferTargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl, continue; } - const RecordType *FieldType = - getASTContext().getBaseElementType(F->getType())->getAs<RecordType>(); - if (!FieldType) { + auto *FieldRecDecl = + getASTContext().getBaseElementType(F->getType())->getAsCXXRecordDecl(); + if (!FieldRecDecl) continue; - } - CXXRecordDecl *FieldRecDecl = - cast<CXXRecordDecl>(FieldType->getOriginalDecl()) - ->getDefinitionOrSelf(); Sema::SpecialMemberOverloadResult SMOR = SemaRef.LookupSpecialMember(FieldRecDecl, CSM, /* ConstArg */ ConstRHS && !F->isMutable(), |