[clang-tidy][NFC] move AST_MATCHER to anonymous namespace in InfiniteLoopCheck (#118820)
This commit is contained in:
@@ -13,13 +13,15 @@
|
||||
#include "clang/Analysis/Analyses/ExprMutationAnalyzer.h"
|
||||
#include "clang/Analysis/CallGraph.h"
|
||||
#include "llvm/ADT/SCCIterator.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
|
||||
using namespace clang::ast_matchers;
|
||||
using clang::ast_matchers::internal::Matcher;
|
||||
using clang::tidy::utils::hasPtrOrReferenceInFunc;
|
||||
|
||||
namespace clang {
|
||||
namespace ast_matchers {
|
||||
namespace tidy::bugprone {
|
||||
|
||||
namespace {
|
||||
/// matches a Decl if it has a "no return" attribute of any kind
|
||||
AST_MATCHER(Decl, declHasNoReturnAttr) {
|
||||
return Node.hasAttr<NoReturnAttr>() || Node.hasAttr<CXX11NoReturnAttr>() ||
|
||||
@@ -30,23 +32,21 @@ AST_MATCHER(Decl, declHasNoReturnAttr) {
|
||||
AST_MATCHER(FunctionType, typeHasNoReturnAttr) {
|
||||
return Node.getNoReturnAttr();
|
||||
}
|
||||
} // namespace ast_matchers
|
||||
namespace tidy::bugprone {
|
||||
} // namespace
|
||||
|
||||
static internal::Matcher<Stmt>
|
||||
loopEndingStmt(internal::Matcher<Stmt> Internal) {
|
||||
internal::Matcher<QualType> isNoReturnFunType =
|
||||
static Matcher<Stmt> loopEndingStmt(Matcher<Stmt> Internal) {
|
||||
Matcher<QualType> IsNoReturnFunType =
|
||||
ignoringParens(functionType(typeHasNoReturnAttr()));
|
||||
internal::Matcher<Decl> isNoReturnDecl =
|
||||
anyOf(declHasNoReturnAttr(), functionDecl(hasType(isNoReturnFunType)),
|
||||
varDecl(hasType(blockPointerType(pointee(isNoReturnFunType)))));
|
||||
Matcher<Decl> IsNoReturnDecl =
|
||||
anyOf(declHasNoReturnAttr(), functionDecl(hasType(IsNoReturnFunType)),
|
||||
varDecl(hasType(blockPointerType(pointee(IsNoReturnFunType)))));
|
||||
|
||||
return stmt(anyOf(
|
||||
mapAnyOf(breakStmt, returnStmt, gotoStmt, cxxThrowExpr).with(Internal),
|
||||
callExpr(Internal,
|
||||
callee(mapAnyOf(functionDecl, /* block callee */ varDecl)
|
||||
.with(isNoReturnDecl))),
|
||||
objcMessageExpr(Internal, callee(isNoReturnDecl))));
|
||||
.with(IsNoReturnDecl))),
|
||||
objcMessageExpr(Internal, callee(IsNoReturnDecl))));
|
||||
}
|
||||
|
||||
/// Return whether `Var` was changed in `LoopStmt`.
|
||||
|
||||
Reference in New Issue
Block a user