[clang] c486d90 - [analyzer][NFC] Document check::ASTCodeBody checker callback (#84160)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 6 05:02:19 PST 2024
Author: Balazs Benics
Date: 2024-03-06T14:02:16+01:00
New Revision: c486d90bdcbd50046fbd8ac874e4b0e62e287193
URL: https://github.com/llvm/llvm-project/commit/c486d90bdcbd50046fbd8ac874e4b0e62e287193
DIFF: https://github.com/llvm/llvm-project/commit/c486d90bdcbd50046fbd8ac874e4b0e62e287193.diff
LOG: [analyzer][NFC] Document check::ASTCodeBody checker callback (#84160)
Fixes #73764
With this patch, now all the callbacks are demonstrated here.
Added:
Modified:
clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
Removed:
################################################################################
diff --git a/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp b/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
index 01e0bed54cc6ed..153a1b1acbfa19 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
@@ -33,30 +33,36 @@ namespace ento {
/// checking.
///
/// \sa CheckerContext
-class CheckerDocumentation : public Checker< check::PreStmt<ReturnStmt>,
- check::PostStmt<DeclStmt>,
- check::PreObjCMessage,
- check::PostObjCMessage,
- check::ObjCMessageNil,
- check::PreCall,
- check::PostCall,
- check::BranchCondition,
- check::NewAllocator,
- check::Location,
- check::Bind,
- check::DeadSymbols,
- check::BeginFunction,
- check::EndFunction,
- check::EndAnalysis,
- check::EndOfTranslationUnit,
- eval::Call,
- eval::Assume,
- check::LiveSymbols,
- check::RegionChanges,
- check::PointerEscape,
- check::ConstPointerEscape,
- check::Event<ImplicitNullDerefEvent>,
- check::ASTDecl<FunctionDecl> > {
+class CheckerDocumentation
+ : public Checker<
+ // clang-format off
+ check::ASTCodeBody,
+ check::ASTDecl<FunctionDecl>,
+ check::BeginFunction,
+ check::Bind,
+ check::BranchCondition,
+ check::ConstPointerEscape,
+ check::DeadSymbols,
+ check::EndAnalysis,
+ check::EndFunction,
+ check::EndOfTranslationUnit,
+ check::Event<ImplicitNullDerefEvent>,
+ check::LiveSymbols,
+ check::Location,
+ check::NewAllocator,
+ check::ObjCMessageNil,
+ check::PointerEscape,
+ check::PostCall,
+ check::PostObjCMessage,
+ check::PostStmt<DeclStmt>,
+ check::PreCall,
+ check::PreObjCMessage,
+ check::PreStmt<ReturnStmt>,
+ check::RegionChanges,
+ eval::Assume,
+ eval::Call
+ // clang-format on
+ > {
public:
/// Pre-visit the Statement.
///
@@ -321,6 +327,13 @@ class CheckerDocumentation : public Checker< check::PreStmt<ReturnStmt>,
void checkASTDecl(const FunctionDecl *D,
AnalysisManager &Mgr,
BugReporter &BR) const {}
+
+ /// Check every declaration that has a statement body in the AST.
+ ///
+ /// As AST traversal callback, which should only be used when the checker is
+ /// not path sensitive. It will be called for every Declaration in the AST.
+ void checkASTCodeBody(const Decl *D, AnalysisManager &Mgr,
+ BugReporter &BR) const {}
};
void CheckerDocumentation::checkPostStmt(const DeclStmt *DS,
More information about the cfe-commits
mailing list