#include "clang/StaticAnalyzer/Core/CheckerManager.h"
Definition at line 126 of file CheckerManager.h.
Definition at line 510 of file CheckerManager.h.
Definition at line 501 of file CheckerManager.h.
Definition at line 504 of file CheckerManager.h.
Definition at line 515 of file CheckerManager.h.
Definition at line 495 of file CheckerManager.h.
Definition at line 521 of file CheckerManager.h.
Definition at line 477 of file CheckerManager.h.
Definition at line 507 of file CheckerManager.h.
Definition at line 512 of file CheckerManager.h.
Definition at line 545 of file CheckerManager.h.
Definition at line 188 of file CheckerManager.h.
Definition at line 600 of file CheckerManager.h.
Definition at line 524 of file CheckerManager.h.
Definition at line 498 of file CheckerManager.h.
Definition at line 518 of file CheckerManager.h.
Definition at line 492 of file CheckerManager.h.
Definition at line 534 of file CheckerManager.h.
Definition at line 526 of file CheckerManager.h.
Definition at line 490 of file CheckerManager.h.
Definition at line 540 of file CheckerManager.h.
Definition at line 543 of file CheckerManager.h.
Definition at line 599 of file CheckerManager.h.
Definition at line 480 of file CheckerManager.h.
Definition at line 549 of file CheckerManager.h.
Definition at line 23 of file CreateCheckerManager.cpp.
References std::function, getDiagnostics(), and getLangOpts().
Referenced by CheckerManager().
Constructs a CheckerManager that ignores all non TblGen-generated checkers.
Useful for unit testing, unless the checker infrastructure itself is tested.
Definition at line 150 of file CheckerManager.h.
References CheckerManager().
Constructs a CheckerManager without requiring an AST.
No checker registration will take place. Only useful when one needs to print the help flags through CheckerRegistryData, and the AST is unavailable.
Definition at line 36 of file CreateCheckerManager.cpp.
References clang::ento::CheckerRegistry::initializeRegistry().
Definition at line 615 of file CheckerManager.h.
Definition at line 609 of file CheckerManager.h.
Referenced by clang::ento::EventDispatcher< EVENT >::_register().
Definition at line 927 of file CheckerManager.cpp.
Referenced by clang::ento::check::BeginFunction::_register().
Definition at line 915 of file CheckerManager.cpp.
Referenced by clang::ento::check::Bind::_register().
Definition at line 919 of file CheckerManager.cpp.
Referenced by clang::ento::check::BlockEntrance::_register().
Definition at line 872 of file CheckerManager.cpp.
Referenced by clang::ento::check::ASTCodeBody::_register().
Definition at line 935 of file CheckerManager.cpp.
Referenced by clang::ento::check::BranchCondition::_register().
Definition at line 960 of file CheckerManager.cpp.
Definition at line 948 of file CheckerManager.cpp.
Referenced by clang::ento::check::DeadSymbols::_register().
Definition at line 866 of file CheckerManager.cpp.
Referenced by clang::ento::check::ASTDecl< DECL >::_register().
Definition at line 923 of file CheckerManager.cpp.
Referenced by clang::ento::check::EndAnalysis::_register().
Definition at line 931 of file CheckerManager.cpp.
Referenced by clang::ento::check::EndFunction::_register().
Definition at line 973 of file CheckerManager.cpp.
Referenced by clang::ento::check::EndOfTranslationUnit::_register().
Definition at line 965 of file CheckerManager.cpp.
Referenced by clang::ento::eval::Assume::_register().
Definition at line 969 of file CheckerManager.cpp.
Referenced by clang::ento::eval::Call::_register().
Definition at line 944 of file CheckerManager.cpp.
Referenced by clang::ento::check::LiveSymbols::_register().
Definition at line 911 of file CheckerManager.cpp.
Referenced by clang::ento::check::Location::_register().
Definition at line 940 of file CheckerManager.cpp.
Referenced by clang::ento::check::NewAllocator::_register().
Definition at line 896 of file CheckerManager.cpp.
Referenced by clang::ento::check::ObjCMessageNil::_register().
Definition at line 956 of file CheckerManager.cpp.
Referenced by clang::ento::check::ConstPointerEscape::_register(), and clang::ento::check::PointerEscape::_register().
Definition at line 907 of file CheckerManager.cpp.
Referenced by clang::ento::check::PostCall::_register().
Definition at line 900 of file CheckerManager.cpp.
Referenced by clang::ento::check::PostObjCMessage::_register().
Definition at line 886 of file CheckerManager.cpp.
Referenced by clang::ento::check::PostStmt< STMT >::_register().
Definition at line 904 of file CheckerManager.cpp.
Referenced by clang::ento::check::PreCall::_register().
Definition at line 892 of file CheckerManager.cpp.
Referenced by clang::ento::check::PreObjCMessage::_register().
Definition at line 880 of file CheckerManager.cpp.
Referenced by clang::ento::check::PreStmt< STMT >::_register().
Definition at line 952 of file CheckerManager.cpp.
Referenced by clang::ento::check::RegionChanges::_register().
Definition at line 603 of file CheckerManager.h.
Referenced by clang::ento::check::Event< EVENT >::_register().
Definition at line 168 of file CheckerManager.h.
Definition at line 177 of file CheckerManager.h.
Referenced by clang::ento::getConfiguration().
If the the singleton instance of a checker class is not yet constructed, then construct it (with the supplied arguments), register it for the callbacks that are supported by it, and return it.
Otherwise, just return a pointer to the existing instance.
Definition at line 199 of file CheckerManager.h.
References CHECKER.
Referenced by REGISTER_MAP_WITH_PROGRAMSTATE(), registerChecker(), and clang::ento::registerInnerPointerCheckerAux().
Definition at line 173 of file CheckerManager.h.
Definition at line 163 of file CheckerManager.h.
Referenced by clang::ento::CheckerFrontend::enable().
Definition at line 176 of file CheckerManager.h.
Referenced by CheckerManager(), and reportInvalidCheckerOptionValue().
Definition at line 167 of file CheckerManager.h.
Referenced by CheckerManager().
Definition at line 169 of file CheckerManager.h.
Definition at line 37 of file CheckerManager.cpp.
Definition at line 224 of file CheckerManager.h.
Register a single-part checker (derived from Checker ): construct its singleton instance, register it for the supported callbacks and record its name (with CheckerFrontend::enable ).
Calling this multiple times triggers an assertion failure.
Definition at line 218 of file CheckerManager.h.
References CHECKER, and getChecker().
Referenced by clang::ento::registerCheckerDocumentationChecker().
Emits an error through a DiagnosticsEngine about an invalid user supplied checker option value.
Definition at line 51 of file CheckerManager.cpp.
References getDiagnostics(), clang::ento::CheckerFrontend::getName(), and clang::DiagnosticsEngine::Report().
Referenced by clang::ento::getConfiguration(), and REGISTER_MAP_WITH_PROGRAMSTATE().
Run checkers on beginning of function.
Definition at line 494 of file CheckerManager.cpp.
References clang::C, expandGraphWithCheckers(), and clang::ento::ExplodedNodeSet::insert().
Referenced by clang::ento::ExprEngine::processBeginOfFunction().
Run checkers for binding of a value to a location.
Definition at line 411 of file CheckerManager.cpp.
References clang::C, and expandGraphWithCheckers().
Run checkers after taking a control flow edge.
Definition at line 450 of file CheckerManager.cpp.
References clang::C, and expandGraphWithCheckers().
Referenced by clang::ento::ExprEngine::runCheckersForBlockEntrance().
Run checkers for branch condition.
Definition at line 556 of file CheckerManager.cpp.
References clang::C, clang::Condition, expandGraphWithCheckers(), and clang::ento::ExplodedNodeSet::insert().
Referenced by clang::ento::ExprEngine::processBranch().
Run checkers for visiting obj-c messages.
Run checkers for visiting an abstract call event.
Definition at line 298 of file CheckerManager.cpp.
References clang::C, clang::Call, and expandGraphWithCheckers().
Referenced by runCheckersForPostCall(), and runCheckersForPreCall().
Run checkers for dead symbols.
Notifies checkers when symbols become dead. For example, this allows checkers to aggressively clean up/reduce the checker state and produce precise diagnostics.
Definition at line 656 of file CheckerManager.cpp.
References clang::C, and expandGraphWithCheckers().
Referenced by clang::ento::ExprEngine::removeDead().
Run checkers for end of analysis.
Definition at line 459 of file CheckerManager.cpp.
Referenced by clang::ento::ExprEngine::processEndWorklist().
Run checkers on end of function.
Run checkers for end of path.
Definition at line 508 of file CheckerManager.cpp.
References clang::C, and clang::ento::ExplodedNode::getLocationContext().
Referenced by clang::ento::ExprEngine::processEndOfFunction().
Run checkers for handling assumptions on symbolic values.
Definition at line 709 of file CheckerManager.cpp.
References clang::Cond.
Referenced by clang::ento::ExprEngine::processAssume().
Run checkers for evaluating a call.
Warning: Currently, the CallEvent MUST come from a CallExpr!
Only one checker will evaluate the call.
Definition at line 723 of file CheckerManager.cpp.
References clang::C, clang::Call, clang::ento::ExprEngine::defaultEvalCall(), clang::ento::ExprEngine::getBuilderContext(), clang::ento::ExplodedNode::getLocationContext(), clang::ProgramPoint::getProgramPoint(), clang::ento::ExplodedNode::getState(), clang::ento::ExplodedNodeSet::insert(), clang::ento::OS, clang::ProgramPoint::PostStmtKind, and toString().
Referenced by clang::ento::ExprEngine::evalCall().
Run checkers for live symbols.
Allows modifying SymbolReaper object. For example, checkers can explicitly register symbols of interest as live. These symbols will not be marked dead and removed.
Definition at line 613 of file CheckerManager.cpp.
Referenced by clang::ento::ExprEngine::removeDead().
Run checkers for load/store of a location.
Definition at line 354 of file CheckerManager.cpp.
References clang::C, and expandGraphWithCheckers().
Run checkers between C++ operator new and constructor calls.
Definition at line 600 of file CheckerManager.cpp.
References clang::C, clang::Call, expandGraphWithCheckers(), and clang::ento::ExplodedNodeSet::insert().
Referenced by clang::ento::ExprEngine::processCallExit(), and clang::ento::ExprEngine::VisitCXXNewAllocatorCall().
Run checkers for visiting obj-c messages.
Definition at line 238 of file CheckerManager.cpp.
References clang::C, and expandGraphWithCheckers().
Referenced by runCheckersForObjCMessageNil(), runCheckersForPostObjCMessage(), and runCheckersForPreObjCMessage().
Run checkers for visiting an obj-c message to nil.
Definition at line 296 of file CheckerManager.h.
References clang::ento::MessageNil, and runCheckersForObjCMessage().
Referenced by clang::ento::ExprEngine::VisitObjCMessage().
Run checkers when pointers escape.
Run checkers to process symbol escape event.
This notifies the checkers about pointer escape, which occurs whenever the analyzer cannot track the symbol any more. For example, as a result of assigning a pointer into a global or when it's passed to a function call the analyzer cannot model.
Definition at line 688 of file CheckerManager.cpp.
References clang::Call, clang::ento::PSK_DirectEscapeOnCall, and clang::ento::PSK_IndirectEscapeOnCall.
Referenced by clang::ento::ExprEngine::escapeValues(), and clang::ento::ExprEngine::notifyCheckersOfPointerEscape().
Run checkers for post-visiting obj-c messages.
Definition at line 318 of file CheckerManager.h.
References clang::Call, and runCheckersForCallEvent().
Referenced by clang::ento::ExprEngine::evalCall(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXDestructor(), clang::ento::ExprEngine::VisitCXXNewAllocatorCall(), and clang::ento::ExprEngine::VisitObjCMessage().
Run checkers for post-visiting obj-c messages.
Definition at line 286 of file CheckerManager.h.
References clang::ento::Post, and runCheckersForObjCMessage().
Referenced by clang::ento::ExprEngine::processCallExit(), and clang::ento::ExprEngine::VisitObjCMessage().
Run checkers for post-visiting Stmts.
The notification is performed for every explored CFGElement, which does not include the control flow statements such as IfStmt.
Definition at line 263 of file CheckerManager.h.
References runCheckersForStmt().
Referenced by clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitArrayInitLoopExpr(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::ento::ExprEngine::VisitAtomicExpr(), clang::ento::ExprEngine::VisitAttributedStmt(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ExprEngine::VisitBlockExpr(), clang::ento::ExprEngine::VisitCallExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitLambdaExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
Run checkers for pre-visiting obj-c messages.
Definition at line 312 of file CheckerManager.h.
References clang::Call, and runCheckersForCallEvent().
Referenced by clang::ento::ExprEngine::evalCall(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXDestructor(), clang::ento::ExprEngine::VisitCXXNewAllocatorCall(), and clang::ento::ExprEngine::VisitObjCMessage().
Run checkers for pre-visiting obj-c messages.
Definition at line 278 of file CheckerManager.h.
References clang::ento::Pre, and runCheckersForObjCMessage().
Referenced by clang::ento::ExprEngine::VisitObjCMessage().
Run checkers for pre-visiting Stmts.
The notification is performed for every explored CFGElement, which does not include the control flow statements such as IfStmt.
Definition at line 250 of file CheckerManager.h.
References runCheckersForStmt().
Referenced by clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitArrayInitLoopExpr(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::ento::ExprEngine::VisitAtomicExpr(), clang::ento::ExprEngine::VisitAttributedStmt(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ExprEngine::VisitCallExpr(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ExprEngine::VisitObjCAtSynchronizedStmt(), clang::ento::ExprEngine::VisitReturnStmt(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
Run checkers for debug-printing a ProgramState.
Unlike most other callbacks, any checker can simply implement the virtual method CheckerBackend::printState if it has custom data to print.
Definition at line 794 of file CheckerManager.cpp.
References clang::Indent().
Referenced by clang::ento::ExprEngine::printJson().
Run checkers for region changes.
This corresponds to the check::RegionChanges callback.
Definition at line 669 of file CheckerManager.cpp.
References clang::Call.
Referenced by clang::ento::ExprEngine::processRegionChanges().
Run checkers for visiting Stmts.
Definition at line 177 of file CheckerManager.cpp.
References clang::C, and expandGraphWithCheckers().
Referenced by runCheckersForPostStmt(), and runCheckersForPreStmt().
Run checkers handling Decls containing a Stmt body.
Definition at line 83 of file CheckerManager.cpp.
References clang::Decl::hasBody().
Run checkers handling Decls.
Definition at line 64 of file CheckerManager.cpp.
References clang::Decl::getKind().
Run checkers for the entire Translation Unit.
Definition at line 786 of file CheckerManager.cpp.
Definition at line 162 of file CheckerManager.h.
Referenced by clang::ento::CheckerRegistry::initializeManager().