https://github.com/steakhal updated https://github.com/llvm/llvm-project/pull/84160
>From a3da80aa7114d938e9cc3f03ec79417777c91fbf Mon Sep 17 00:00:00 2001 From: Balazs Benics <benicsbal...@gmail.com> Date: Wed, 6 Mar 2024 13:05:44 +0100 Subject: [PATCH 1/2] [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, >From e7ee37d91774d2add3901cb1c5da81a3a9a824ed Mon Sep 17 00:00:00 2001 From: Balazs Benics <benicsbal...@gmail.com> Date: Wed, 6 Mar 2024 13:57:42 +0100 Subject: [PATCH 2/2] Use clang-format off-on --- .../Checkers/CheckerDocumentation.cpp | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp b/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp index ba66a2254cc777..153a1b1acbfa19 100644 --- a/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp @@ -33,33 +33,36 @@ namespace ento { /// checking. /// /// \sa CheckerContext -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 // - > { +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. /// _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits