diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-24 02:07:20 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-24 02:07:20 +0000 |
commit | 8bae1be0fa5bb9b1f3f4d1e905026424bfb78da0 (patch) | |
tree | 225f860b552fac99e6a932e753c19fd085b0747e /clang/lib/Sema/SemaCUDA.cpp | |
parent | 2698ab4b62b50e1a08dc5798785bc1677f754cb5 (diff) | |
download | bcm5719-llvm-8bae1be0fa5bb9b1f3f4d1e905026424bfb78da0.tar.gz bcm5719-llvm-8bae1be0fa5bb9b1f3f4d1e905026424bfb78da0.zip |
Factor out some common code between SpecialMemberExceptionSpecInfo and SpecialMemberDeletionInfo.
To simplify this, convert SpecialMemberOverloadResult to a value type.
llvm-svn: 296073
Diffstat (limited to 'clang/lib/Sema/SemaCUDA.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCUDA.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaCUDA.cpp b/clang/lib/Sema/SemaCUDA.cpp index 282633bbc9e..b938ac387c4 100644 --- a/clang/lib/Sema/SemaCUDA.cpp +++ b/clang/lib/Sema/SemaCUDA.cpp @@ -295,7 +295,7 @@ bool Sema::inferCUDATargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl, } CXXRecordDecl *BaseClassDecl = cast<CXXRecordDecl>(BaseType->getDecl()); - Sema::SpecialMemberOverloadResult *SMOR = + Sema::SpecialMemberOverloadResult SMOR = LookupSpecialMember(BaseClassDecl, CSM, /* ConstArg */ ConstRHS, /* VolatileArg */ false, @@ -303,11 +303,10 @@ bool Sema::inferCUDATargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl, /* ConstThis */ false, /* VolatileThis */ false); - if (!SMOR || !SMOR->getMethod()) { + if (!SMOR.getMethod()) continue; - } - CUDAFunctionTarget BaseMethodTarget = IdentifyCUDATarget(SMOR->getMethod()); + CUDAFunctionTarget BaseMethodTarget = IdentifyCUDATarget(SMOR.getMethod()); if (!InferredTarget.hasValue()) { InferredTarget = BaseMethodTarget; } else { @@ -339,7 +338,7 @@ bool Sema::inferCUDATargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl, } CXXRecordDecl *FieldRecDecl = cast<CXXRecordDecl>(FieldType->getDecl()); - Sema::SpecialMemberOverloadResult *SMOR = + Sema::SpecialMemberOverloadResult SMOR = LookupSpecialMember(FieldRecDecl, CSM, /* ConstArg */ ConstRHS && !F->isMutable(), /* VolatileArg */ false, @@ -347,12 +346,11 @@ bool Sema::inferCUDATargetForImplicitSpecialMember(CXXRecordDecl *ClassDecl, /* ConstThis */ false, /* VolatileThis */ false); - if (!SMOR || !SMOR->getMethod()) { + if (!SMOR.getMethod()) continue; - } CUDAFunctionTarget FieldMethodTarget = - IdentifyCUDATarget(SMOR->getMethod()); + IdentifyCUDATarget(SMOR.getMethod()); if (!InferredTarget.hasValue()) { InferredTarget = FieldMethodTarget; } else { |