Lines Matching refs:C
38 void analyzerEval(const CallExpr *CE, CheckerContext &C) const;
39 void analyzerCheckInlined(const CallExpr *CE, CheckerContext &C) const;
40 void analyzerWarnIfReached(const CallExpr *CE, CheckerContext &C) const;
41 void analyzerNumTimesReached(const CallExpr *CE, CheckerContext &C) const;
42 void analyzerCrash(const CallExpr *CE, CheckerContext &C) const;
43 void analyzerWarnOnDeadSymbol(const CallExpr *CE, CheckerContext &C) const;
44 void analyzerValue(const CallExpr *CE, CheckerContext &C) const;
45 void analyzerDumpSValType(const CallExpr *CE, CheckerContext &C) const;
46 void analyzerDump(const CallExpr *CE, CheckerContext &C) const;
47 void analyzerExplain(const CallExpr *CE, CheckerContext &C) const;
48 void analyzerPrintState(const CallExpr *CE, CheckerContext &C) const;
49 void analyzerGetExtent(const CallExpr *CE, CheckerContext &C) const;
50 void analyzerDumpExtent(const CallExpr *CE, CheckerContext &C) const;
51 void analyzerDumpElementCount(const CallExpr *CE, CheckerContext &C) const;
52 void analyzerHashDump(const CallExpr *CE, CheckerContext &C) const;
53 void analyzerDenote(const CallExpr *CE, CheckerContext &C) const;
54 void analyzerExpress(const CallExpr *CE, CheckerContext &C) const;
55 void analyzerIsTainted(const CallExpr *CE, CheckerContext &C) const;
58 CheckerContext &C) const;
61 ExplodedNode *reportBug(llvm::StringRef Msg, CheckerContext &C,
65 template <typename T> void printAndReport(CheckerContext &C, T What) const;
67 const Expr *getArgExpr(const CallExpr *CE, CheckerContext &C) const;
68 const MemRegion *getArgRegion(const CallExpr *CE, CheckerContext &C) const;
71 bool evalCall(const CallEvent &Call, CheckerContext &C) const;
72 void checkDeadSymbols(SymbolReaper &SymReaper, CheckerContext &C) const;
82 CheckerContext &C) const { in REGISTER_SET_WITH_PROGRAMSTATE()
90 llvm::StringSwitch<FnCheck>(C.getCalleeName(CE)) in REGISTER_SET_WITH_PROGRAMSTATE()
129 (this->*Handler)(CE, C); in REGISTER_SET_WITH_PROGRAMSTATE()
134 CheckerContext &C) { in getArgumentValueString() argument
138 ExplodedNode *N = C.getPredecessor(); in getArgumentValueString()
166 ExprInspectionChecker::reportBug(llvm::StringRef Msg, CheckerContext &C, in reportBug() argument
168 ExplodedNode *N = C.generateNonFatalErrorNode(); in reportBug()
169 reportBug(Msg, C.getBugReporter(), N, ExprVal); in reportBug()
188 CheckerContext &C) const { in getArgExpr()
190 reportBug("Missing argument", C); in getArgExpr()
197 CheckerContext &C) const { in getArgRegion()
198 const Expr *Arg = getArgExpr(CE, C); in getArgRegion()
202 const MemRegion *MR = C.getSVal(Arg).getAsRegion(); in getArgRegion()
204 reportBug("Cannot obtain the region", C); in getArgRegion()
212 CheckerContext &C) const { in analyzerEval()
213 const LocationContext *LC = C.getPredecessor()->getLocationContext(); in analyzerEval()
220 reportBug(getArgumentValueString(CE, C), C); in analyzerEval()
224 CheckerContext &C) const { in analyzerWarnIfReached()
225 reportBug("REACHABLE", C); in analyzerWarnIfReached()
229 CheckerContext &C) const { in analyzerNumTimesReached()
233 ReachedStats[CE].ExampleNode = C.generateNonFatalErrorNode(); in analyzerNumTimesReached()
238 CheckerContext &C) const { in analyzerCheckInlined()
239 const LocationContext *LC = C.getPredecessor()->getLocationContext(); in analyzerCheckInlined()
249 reportBug(getArgumentValueString(CE, C), C); in analyzerCheckInlined()
253 CheckerContext &C) const { in analyzerExplain()
254 const Expr *Arg = getArgExpr(CE, C); in analyzerExplain()
258 SVal V = C.getSVal(Arg); in analyzerExplain()
259 SValExplainer Ex(C.getASTContext()); in analyzerExplain()
260 reportBug(Ex.Visit(V), C); in analyzerExplain()
263 static void printHelper(llvm::raw_svector_ostream &Out, CheckerContext &C, in printHelper() argument
269 static void printHelper(llvm::raw_svector_ostream &Out, CheckerContext &C, in printHelper() argument
271 C.getConstraintManager().printValue(Out, C.getState(), Sym); in printHelper()
274 static void printHelper(llvm::raw_svector_ostream &Out, CheckerContext &C, in printHelper() argument
280 void ExprInspectionChecker::printAndReport(CheckerContext &C, T What) const { in printAndReport() argument
283 printHelper(OS, C, What); in printAndReport()
284 reportBug(OS.str(), C); in printAndReport()
288 CheckerContext &C) const { in analyzerValue()
289 const Expr *Arg = getArgExpr(CE, C); in analyzerValue()
293 SVal V = C.getSVal(Arg); in analyzerValue()
295 printAndReport(C, Sym); in analyzerValue()
297 printAndReport(C, *I); in analyzerValue()
299 reportBug("n/a", C); in analyzerValue()
303 CheckerContext &C) const { in analyzerDumpSValType()
304 const Expr *Arg = getArgExpr(CE, C); in analyzerDumpSValType()
308 QualType Ty = C.getSVal(Arg).getType(C.getASTContext()); in analyzerDumpSValType()
309 reportBug(Ty.getAsString(), C); in analyzerDumpSValType()
313 CheckerContext &C) const { in analyzerDump()
314 const Expr *Arg = getArgExpr(CE, C); in analyzerDump()
318 SVal V = C.getSVal(Arg); in analyzerDump()
319 printAndReport(C, V); in analyzerDump()
323 CheckerContext &C) const { in analyzerGetExtent()
324 const Expr *Arg = getArgExpr(CE, C); in analyzerGetExtent()
328 ProgramStateRef State = C.getState(); in analyzerGetExtent()
329 SVal Size = getDynamicExtentWithOffset(State, C.getSVal(Arg)); in analyzerGetExtent()
331 State = State->BindExpr(CE, C.getLocationContext(), Size); in analyzerGetExtent()
332 C.addTransition(State); in analyzerGetExtent()
336 CheckerContext &C) const { in analyzerDumpExtent()
337 const Expr *Arg = getArgExpr(CE, C); in analyzerDumpExtent()
341 ProgramStateRef State = C.getState(); in analyzerDumpExtent()
342 SVal Size = getDynamicExtentWithOffset(State, C.getSVal(Arg)); in analyzerDumpExtent()
343 printAndReport(C, Size); in analyzerDumpExtent()
347 CheckerContext &C) const { in analyzerDumpElementCount()
348 const MemRegion *MR = getArgRegion(CE, C); in analyzerDumpElementCount()
362 C.getState(), C.getSVal(getArgExpr(CE, C)), ElementTy); in analyzerDumpElementCount()
363 printAndReport(C, ElementCount); in analyzerDumpElementCount()
367 CheckerContext &C) const { in analyzerPrintState()
368 C.getState()->dump(); in analyzerPrintState()
372 CheckerContext &C) const { in analyzerWarnOnDeadSymbol()
373 const Expr *Arg = getArgExpr(CE, C); in analyzerWarnOnDeadSymbol()
377 SVal Val = C.getSVal(Arg); in analyzerWarnOnDeadSymbol()
382 ProgramStateRef State = C.getState(); in analyzerWarnOnDeadSymbol()
384 C.addTransition(State); in analyzerWarnOnDeadSymbol()
388 CheckerContext &C) const { in checkDeadSymbols()
389 ProgramStateRef State = C.getState(); in checkDeadSymbols()
391 ExplodedNode *N = C.getPredecessor(); in checkDeadSymbols()
397 if (ExplodedNode *BugNode = reportBug("SYMBOL DEAD", C)) in checkDeadSymbols()
408 C.addTransition(State, N); in checkDeadSymbols()
423 CheckerContext &C) const { in analyzerCrash()
428 CheckerContext &C) const { in analyzerHashDump()
429 const LangOptions &Opts = C.getLangOpts(); in analyzerHashDump()
430 const SourceManager &SM = C.getSourceManager(); in analyzerHashDump()
434 C.getLocationContext()->getDecl(), Opts); in analyzerHashDump()
436 reportBug(HashContent, C); in analyzerHashDump()
440 CheckerContext &C) const { in analyzerDenote()
443 C); in analyzerDenote()
447 SymbolRef Sym = C.getSVal(CE->getArg(0)).getAsSymbol(); in analyzerDenote()
449 reportBug("Not a symbol", C); in analyzerDenote()
455 reportBug("Not a string literal", C); in analyzerDenote()
459 ProgramStateRef State = C.getState(); in analyzerDenote()
461 C.addTransition(C.getState()->set<DenotedSymbols>(Sym, E)); in analyzerDenote()
525 CheckerContext &C) const { in analyzerExpress()
526 const Expr *Arg = getArgExpr(CE, C); in analyzerExpress()
530 SVal ArgVal = C.getSVal(CE->getArg(0)); in analyzerExpress()
533 reportBug("Not a symbol", C, ArgVal); in analyzerExpress()
537 SymbolExpressor V(C.getState()); in analyzerExpress()
540 reportBug("Unable to express", C, ArgVal); in analyzerExpress()
544 reportBug(*Str, C, ArgVal); in analyzerExpress()
548 CheckerContext &C) const { in analyzerIsTainted()
550 reportBug("clang_analyzer_isTainted() requires exactly one argument", C); in analyzerIsTainted()
554 taint::isTainted(C.getState(), CE->getArg(0), C.getLocationContext()); in analyzerIsTainted()
555 reportBug(IsTainted ? "YES" : "NO", C); in analyzerIsTainted()