summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-02-24 01:36:58 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-02-24 01:36:58 +0000
commit5511800bb0023a59c9afe000cf7c13a694ffd391 (patch)
treee16b0d4c70a5b5012e4dceb0282cf7012fa20b7a
parent2246c83369a0fac1e8f976cbe2d3342c6b1860c1 (diff)
downloadbcm5719-llvm-5511800bb0023a59c9afe000cf7c13a694ffd391.tar.gz
bcm5719-llvm-5511800bb0023a59c9afe000cf7c13a694ffd391.zip
Simplify and pass a more useful source location when computing an exception
specification for an implicit special member. llvm-svn: 296068
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp17
1 files changed, 3 insertions, 14 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 602c3814ca3..cd31937f7a7 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -6097,20 +6097,9 @@ ComputeDefaultedSpecialMemberExceptionSpec(
static Sema::ImplicitExceptionSpecification
computeImplicitExceptionSpec(Sema &S, SourceLocation Loc, CXXMethodDecl *MD) {
- switch (auto CSM = S.getSpecialMember(MD)) {
- case Sema::CXXDefaultConstructor:
- return ComputeDefaultedSpecialMemberExceptionSpec(
- S, Loc, MD, Sema::CXXDefaultConstructor, nullptr);
- case Sema::CXXCopyConstructor:
- case Sema::CXXCopyAssignment:
- case Sema::CXXMoveConstructor:
- case Sema::CXXMoveAssignment:
- case Sema::CXXDestructor:
- return ComputeDefaultedSpecialMemberExceptionSpec(
- S, MD->getLocation(), MD, CSM, nullptr);
- case Sema::CXXInvalid:
- break;
- }
+ auto CSM = S.getSpecialMember(MD);
+ if (CSM != Sema::CXXInvalid)
+ return ComputeDefaultedSpecialMemberExceptionSpec(S, Loc, MD, CSM, nullptr);
auto *CD = cast<CXXConstructorDecl>(MD);
assert(CD->getInheritedConstructor() &&
OpenPOWER on IntegriCloud