<
typenameDECL>
30 template<
typenameCHECKER>
33((
const CHECKER*)checker)->checkASTDecl(cast<DECL>(
D), mgr, BR);
36 static bool_handlesDecl(
const Decl*
D) {
37 returnisa<DECL>(
D);
40 template<
typenameCHECKER>
49 template<
typenameCHECKER>
52((
const CHECKER*)checker)->checkASTCodeBody(
D, mgr, BR);
56 template<
typenameCHECKER>
59_checkBody<CHECKER>));
64 template<
typenameCHECKER>
65 static void_checkEndOfTranslationUnit(
void*checker,
69((
const CHECKER*)checker)->checkEndOfTranslationUnit(TU, mgr, BR);
73 template<
typenameCHECKER>
77_checkEndOfTranslationUnit<CHECKER>));
81template<
typenameSTMT>
83 template<
typenameCHECKER>
85((
const CHECKER*)checker)->checkPreStmt(cast<STMT>(S),
C);
88 static bool_handlesStmt(
const Stmt*S) {
92 template<
typenameCHECKER>
100template<
typenameSTMT>
102 template<
typenameCHECKER>
104((
const CHECKER*)checker)->checkPostStmt(cast<STMT>(S),
C);
107 static bool_handlesStmt(
const Stmt*S) {
111 template<
typenameCHECKER>
114_checkStmt<CHECKER>),
120 template<
typenameCHECKER>
121 static void_checkObjCMessage(
void*checker,
const ObjCMethodCall&msg,
123((
const CHECKER*)checker)->checkPreObjCMessage(msg,
C);
127 template<
typenameCHECKER>
135 template<
typenameCHECKER>
136 static void_checkObjCMessage(
void*checker,
const ObjCMethodCall&msg,
138((
const CHECKER*)checker)->checkObjCMessageNil(msg,
C);
142 template<
typenameCHECKER>
150 template<
typenameCHECKER>
151 static void_checkObjCMessage(
void*checker,
const ObjCMethodCall&msg,
153((
const CHECKER*)checker)->checkPostObjCMessage(msg,
C);
157 template<
typenameCHECKER>
165 template<
typenameCHECKER>
166 static void_checkCall(
void*checker,
const CallEvent&msg,
168((
const CHECKER*)checker)->checkPreCall(msg,
C);
172 template<
typenameCHECKER>
180 template<
typenameCHECKER>
181 static void_checkCall(
void*checker,
const CallEvent&msg,
183((
const CHECKER*)checker)->checkPostCall(msg,
C);
187 template<
typenameCHECKER>
195 template<
typenameCHECKER>
196 static void_checkLocation(
void*checker,
SVallocation,
boolisLoad,
198((
const CHECKER*)checker)->checkLocation(location, isLoad, S,
C);
202 template<
typenameCHECKER>
210 template<
typenameCHECKER>
211 static void_checkBind(
void*checker,
SVallocation,
SValval,
const Stmt*S,
213((
const CHECKER*)checker)->checkBind(location, val, S,
C);
217 template<
typenameCHECKER>
225 template<
typenameCHECKER>
226 static void_checkEndAnalysis(
void*checker,
ExplodedGraph&G,
228((
const CHECKER*)checker)->checkEndAnalysis(G, BR, Eng);
232 template<
typenameCHECKER>
240 template<
typenameCHECKER>
242((
const CHECKER*)checker)->checkBeginFunction(
C);
246 template<
typenameCHECKER>
249checker, _checkBeginFunction<CHECKER>));
254 template<
typenameCHECKER>
255 static void_checkEndFunction(
void*checker,
const ReturnStmt*RS,
257((
const CHECKER*)checker)->checkEndFunction(RS,
C);
261 template<
typenameCHECKER>
269 template<
typenameCHECKER>
270 static void_checkBranchCondition(
void*checker,
const Stmt*
Condition,
276 template<
typenameCHECKER>
280_checkBranchCondition<CHECKER>));
285 template<
typenameCHECKER>
288((
const CHECKER*)checker)->checkNewAllocator(
Call,
C);
292 template<
typenameCHECKER>
296_checkNewAllocator<CHECKER>));
301 template<
typenameCHECKER>
304((
const CHECKER*)checker)->checkLiveSymbols(state, SR);
308 template<
typenameCHECKER>
316 template<
typenameCHECKER>
317 static void_checkDeadSymbols(
void*checker,
319((
const CHECKER*)checker)->checkDeadSymbols(SR,
C);
323 template<
typenameCHECKER>
331 template<
typenameCHECKER>
333_checkRegionChanges(
void*checker,
340 return((
const CHECKER*) checker)->checkRegionChanges(state, invalidated,
346 template<
typenameCHECKER>
350_checkRegionChanges<CHECKER>));
355 template<
typenameCHECKER>
357_checkPointerEscape(
void*
Checker,
376RegularEscape.insert(Sym);
378 if(RegularEscape.empty())
388 template<
typenameCHECKER>
392_checkPointerEscape<CHECKER>));
397 template<
typenameCHECKER>
399_checkConstPointerEscape(
void*
Checker,
415ConstEscape.insert(Sym);
418 if(ConstEscape.empty())
421 return((
const CHECKER*)
Checker)->checkConstPointerEscape(State,
428 template<
typenameCHECKER>
432_checkConstPointerEscape<CHECKER>));
437template<
typenameEVENT>
439 template<
typenameCHECKER>
440 static void_checkEvent(
void*checker,
const void*event) {
441((
const CHECKER*)checker)->checkEvent(*(
constEVENT *)event);
444 template<
typenameCHECKER>
456 template<
typenameCHECKER>
458 SValcond,
boolassumption) {
459 return((
const CHECKER*)checker)->evalAssume(state, cond, assumption);
463 template<
typenameCHECKER>
471 template<
typenameCHECKER>
472 static bool_evalCall(
void*checker,
const CallEvent&
Call,
474 return((
const CHECKER*)checker)->evalCall(
Call,
C);
478 template<
typenameCHECKER>
489 friendclass ::clang::ento::CheckerManager;
497 const char*NL,
const char*Sep)
const{ }
501raw_ostream&
operator<<(raw_ostream &Out,
constCheckerBase &Checker);
511template<
typename CHECK1,
typename... CHECKs>
514 template<
typenameCHECKER>
516CHECK1::_register(checker, mgr);
521template<
typenameCHECK1>
524 template<
typenameCHECKER>
526CHECK1::_register(checker, mgr);
530template<
typenameEVENT>
536 template<
typenameCHECKER>
#define CHECKER(FULLNAME, CLASS, HELPTEXT, DOC_URI, IS_HIDDEN)
enum clang::sema::@1704::IndirectLocalPathEntry::EntryKind Kind
Defines the clang::LangOptions interface.
Decl - This represents one declaration (or definition), e.g.
It wraps the AnalysisDeclContext to represent both the call stack with the help of StackFrameContext ...
ProgramPoints can be "tagged" as representing points specific to a given analysis entity.
ReturnStmt - This represents a return, optionally of an expression: return; return 4;.
Stmt - This represents one statement.
The top declaration context.
BugReporter is a utility class for generating PathDiagnostics for analysis.
Represents the memory allocation call in a C++ new-expression.
Represents an abstract call to a function or method along a particular path.
CheckerNameRef getCheckerName() const
virtual void printState(raw_ostream &Out, ProgramStateRef State, const char *NL, const char *Sep) const
See CheckerManager::runCheckersForPrintState.
StringRef getTagDescription() const override
void _registerForLiveSymbols(CheckLiveSymbolsFunc checkfn)
void _registerForEndOfTranslationUnit(CheckEndOfTranslationUnit checkfn)
void _registerForBeginFunction(CheckBeginFunctionFunc checkfn)
void _registerForNewAllocator(CheckNewAllocatorFunc checkfn)
void _registerForPreCall(CheckCallFunc checkfn)
void _registerForObjCMessageNil(CheckObjCMessageFunc checkfn)
void _registerForDecl(CheckDeclFunc checkfn, HandlesDeclFunc isForDeclFn)
void _registerForPreObjCMessage(CheckObjCMessageFunc checkfn)
CheckerFn< void(const void *event)> CheckEventFunc
void _registerListenerForEvent(CheckEventFunc checkfn)
void _registerForEvalAssume(EvalAssumeFunc checkfn)
void _registerForEndAnalysis(CheckEndAnalysisFunc checkfn)
void _registerForBody(CheckDeclFunc checkfn)
void _registerForDeadSymbols(CheckDeadSymbolsFunc checkfn)
void _registerForPostObjCMessage(CheckObjCMessageFunc checkfn)
void _registerForRegionChanges(CheckRegionChangesFunc checkfn)
void _registerForBind(CheckBindFunc checkfn)
void _registerForPointerEscape(CheckPointerEscapeFunc checkfn)
void _registerForPreStmt(CheckStmtFunc checkfn, HandlesStmtFunc isForStmtFn)
void _registerForPostStmt(CheckStmtFunc checkfn, HandlesStmtFunc isForStmtFn)
void _registerForBranchCondition(CheckBranchConditionFunc checkfn)
void _dispatchEvent(const EVENT &event) const
void _registerForEvalCall(EvalCallFunc checkfn)
void _registerForEndFunction(CheckEndFunctionFunc checkfn)
void _registerDispatcherForEvent()
void _registerForLocation(CheckLocationFunc checkfn)
void _registerForPostCall(CheckCallFunc checkfn)
This wrapper is used to ensure that only StringRefs originating from the CheckerRegistry are used as ...
Tag that can use a checker name as a message provider (see SimpleProgramPointTag).
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
EventDispatcher()=default
static void _register(CHECKER *checker, CheckerManager &mgr)
void dispatchEvent(const EVENT &event) const
Represents any expression that calls an Objective-C method.
Information about invalidation for a particular region/symbol.
@ TK_PreserveContents
Tells that a region's contents is not changed.
@ TK_SuppressEscape
Suppress pointer-escaping of a region.
bool hasTrait(SymbolRef Sym, InvalidationKinds IK) const
SVal - This represents a symbolic expression, which can be either an L-value or an R-value.
A class responsible for cleaning up unused symbols.
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
static void _register(CHECKER *checker, CheckerManager &mgr)
PointerEscapeKind
Describes the different reasons a pointer escapes during analysis.
raw_ostream & operator<<(raw_ostream &Out, const CheckerBase &Checker)
Dump checker name to stream.
llvm::DenseSet< SymbolRef > InvalidatedSymbols
The JSON file list parser is used to communicate input to InstallAPI.
We dereferenced a location that may be null.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4