[clang] [analyzer][NFC] Document check::ASTCodeBody checker callback (PR #84160)
Balazs Benics via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 6 04:08:14 PST 2024
https://github.com/steakhal created https://github.com/llvm/llvm-project/pull/84160
Fixes #73764
With this patch, now all the callbacks are demonstrated here.
>From a3da80aa7114d938e9cc3f03ec79417777c91fbf Mon Sep 17 00:00:00 2001
From: Balazs Benics <benicsbalazs at gmail.com>
Date: Wed, 6 Mar 2024 13:05:44 +0100
Subject: [PATCH] [analyzer][NFC] Document check::ASTCodeBody checker callback
Fixes #73764
With this patch, now all the callbacks are demonstrated here.
---
.../Checkers/CheckerDocumentation.cpp | 58 +++++++++++--------
1 file changed, 34 insertions(+), 24 deletions(-)
diff --git a/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp b/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
index 01e0bed54cc6ed..ba66a2254cc777 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
@@ -33,30 +33,33 @@ 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< //
+ 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 //
+ > {
public:
/// Pre-visit the Statement.
///
@@ -321,6 +324,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