diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-24 01:36:58 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-24 01:36:58 +0000 |
| commit | 5511800bb0023a59c9afe000cf7c13a694ffd391 (patch) | |
| tree | e16b0d4c70a5b5012e4dceb0282cf7012fa20b7a | |
| parent | 2246c83369a0fac1e8f976cbe2d3342c6b1860c1 (diff) | |
| download | bcm5719-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.cpp | 17 |
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() && |

