summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/modernize/UseNoexceptCheck.cpp2
-rw-r--r--clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp23
2 files changed, 10 insertions, 15 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/UseNoexceptCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseNoexceptCheck.cpp
index e32aef92143..869381ab00d 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseNoexceptCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseNoexceptCheck.cpp
@@ -89,7 +89,7 @@ void UseNoexceptCheck::check(const MatchFinder::MatchResult &Result) {
Result.Context->getLangOpts());
assert(FnTy && "FunctionProtoType is null.");
- bool IsNoThrow = FnTy->isNothrow(*Result.Context);
+ bool IsNoThrow = FnTy->isNothrow();
StringRef ReplacementStr =
IsNoThrow
? NoexceptMacro.empty() ? "noexcept" : NoexceptMacro.c_str()
diff --git a/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp b/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
index 86ef70ce094..111f24d8ebe 100644
--- a/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/NoexceptMoveConstructorCheck.cpp
@@ -47,27 +47,22 @@ void NoexceptMoveConstructorCheck::check(
if (isUnresolvedExceptionSpec(ProtoType->getExceptionSpecType()))
return;
- switch (ProtoType->getNoexceptSpec(*Result.Context)) {
- case FunctionProtoType::NR_NoNoexcept:
+ if (!isNoexceptExceptionSpec(ProtoType->getExceptionSpecType())) {
diag(Decl->getLocation(), "move %0s should be marked noexcept")
<< MethodType;
// FIXME: Add a fixit.
- break;
- case FunctionProtoType::NR_Throw:
- // Don't complain about nothrow(false), but complain on nothrow(expr)
- // where expr evaluates to false.
- if (const Expr *E = ProtoType->getNoexceptExpr()) {
- if (isa<CXXBoolLiteralExpr>(E))
- break;
+ return;
+ }
+
+ // Don't complain about nothrow(false), but complain on nothrow(expr)
+ // where expr evaluates to false.
+ if (ProtoType->canThrow() == CT_Can) {
+ Expr *E = ProtoType->getNoexceptExpr();
+ if (!isa<CXXBoolLiteralExpr>(ProtoType->getNoexceptExpr())) {
diag(E->getExprLoc(),
"noexcept specifier on the move %0 evaluates to 'false'")
<< MethodType;
}
- break;
- case FunctionProtoType::NR_Nothrow:
- case FunctionProtoType::NR_Dependent:
- case FunctionProtoType::NR_BadNoexcept:
- break;
}
}
}
OpenPOWER on IntegriCloud