From: Richard Smith Date: Fri, 24 Feb 2017 01:36:58 +0000 (+0000) Subject: Simplify and pass a more useful source location when computing an exception X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41e763168d5a8d83d62ca054c9f41c246fc5a5e3;p=clang Simplify and pass a more useful source location when computing an exception specification for an implicit special member. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@296068 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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(MD); assert(CD->getInheritedConstructor() &&