diff options
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 602c3814ca..cd31937f7a 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/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() && |