[clang] [analyzer][NFC] Document check::ASTCodeBody checker callback (PR #84160)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 6 04:08:36 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-static-analyzer-1
Author: Balazs Benics (steakhal)
<details>
<summary>Changes</summary>
Fixes #<!-- -->73764
With this patch, now all the callbacks are demonstrated here.
---
Full diff: https://github.com/llvm/llvm-project/pull/84160.diff
1 Files Affected:
- (modified) clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp (+34-24)
``````````diff
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,
``````````
</details>
https://github.com/llvm/llvm-project/pull/84160
More information about the cfe-commits
mailing list