Lines Matching refs:C

37   void analyzerEval(const CallExpr *CE, CheckerContext &C) const;
38 void analyzerCheckInlined(const CallExpr *CE, CheckerContext &C) const;
39 void analyzerWarnIfReached(const CallExpr *CE, CheckerContext &C) const;
40 void analyzerNumTimesReached(const CallExpr *CE, CheckerContext &C) const;
41 void analyzerCrash(const CallExpr *CE, CheckerContext &C) const;
42 void analyzerWarnOnDeadSymbol(const CallExpr *CE, CheckerContext &C) const;
43 void analyzerValue(const CallExpr *CE, CheckerContext &C) const;
44 void analyzerDumpSValType(const CallExpr *CE, CheckerContext &C) const;
45 void analyzerDump(const CallExpr *CE, CheckerContext &C) const;
46 void analyzerExplain(const CallExpr *CE, CheckerContext &C) const;
47 void analyzerPrintState(const CallExpr *CE, CheckerContext &C) const;
48 void analyzerGetExtent(const CallExpr *CE, CheckerContext &C) const;
49 void analyzerDumpExtent(const CallExpr *CE, CheckerContext &C) const;
50 void analyzerDumpElementCount(const CallExpr *CE, CheckerContext &C) const;
51 void analyzerHashDump(const CallExpr *CE, CheckerContext &C) const;
52 void analyzerDenote(const CallExpr *CE, CheckerContext &C) const;
53 void analyzerExpress(const CallExpr *CE, CheckerContext &C) const;
54 void analyzerIsTainted(const CallExpr *CE, CheckerContext &C) const;
57 CheckerContext &C) const;
60 ExplodedNode *reportBug(llvm::StringRef Msg, CheckerContext &C,
64 template <typename T> void printAndReport(CheckerContext &C, T What) const;
66 const Expr *getArgExpr(const CallExpr *CE, CheckerContext &C) const;
67 const MemRegion *getArgRegion(const CallExpr *CE, CheckerContext &C) const;
70 bool evalCall(const CallEvent &Call, CheckerContext &C) const;
71 void checkDeadSymbols(SymbolReaper &SymReaper, CheckerContext &C) const;
81 CheckerContext &C) const { in REGISTER_SET_WITH_PROGRAMSTATE()
89 llvm::StringSwitch<FnCheck>(C.getCalleeName(CE)) in REGISTER_SET_WITH_PROGRAMSTATE()
127 (this->*Handler)(CE, C); in REGISTER_SET_WITH_PROGRAMSTATE()
132 CheckerContext &C) { in getArgumentValueString() argument
136 ExplodedNode *N = C.getPredecessor(); in getArgumentValueString()
164 CheckerContext &C, in reportBug() argument
166 ExplodedNode *N = C.generateNonFatalErrorNode(); in reportBug()
167 reportBug(Msg, C.getBugReporter(), N, ExprVal); in reportBug()
189 CheckerContext &C) const { in getArgExpr()
191 reportBug("Missing argument", C); in getArgExpr()
198 CheckerContext &C) const { in getArgRegion()
199 const Expr *Arg = getArgExpr(CE, C); in getArgRegion()
203 const MemRegion *MR = C.getSVal(Arg).getAsRegion(); in getArgRegion()
205 reportBug("Cannot obtain the region", C); in getArgRegion()
213 CheckerContext &C) const { in analyzerEval()
214 const LocationContext *LC = C.getPredecessor()->getLocationContext(); in analyzerEval()
221 reportBug(getArgumentValueString(CE, C), C); in analyzerEval()
225 CheckerContext &C) const { in analyzerWarnIfReached()
226 reportBug("REACHABLE", C); in analyzerWarnIfReached()
230 CheckerContext &C) const { in analyzerNumTimesReached()
234 ReachedStats[CE].ExampleNode = C.generateNonFatalErrorNode(); in analyzerNumTimesReached()
239 CheckerContext &C) const { in analyzerCheckInlined()
240 const LocationContext *LC = C.getPredecessor()->getLocationContext(); in analyzerCheckInlined()
250 reportBug(getArgumentValueString(CE, C), C); in analyzerCheckInlined()
254 CheckerContext &C) const { in analyzerExplain()
255 const Expr *Arg = getArgExpr(CE, C); in analyzerExplain()
259 SVal V = C.getSVal(Arg); in analyzerExplain()
260 SValExplainer Ex(C.getASTContext()); in analyzerExplain()
261 reportBug(Ex.Visit(V), C); in analyzerExplain()
264 static void printHelper(llvm::raw_svector_ostream &Out, CheckerContext &C, in printHelper() argument
270 static void printHelper(llvm::raw_svector_ostream &Out, CheckerContext &C, in printHelper() argument
272 C.getConstraintManager().printValue(Out, C.getState(), Sym); in printHelper()
275 static void printHelper(llvm::raw_svector_ostream &Out, CheckerContext &C, in printHelper() argument
281 void ExprInspectionChecker::printAndReport(CheckerContext &C, T What) const { in printAndReport() argument
284 printHelper(OS, C, What); in printAndReport()
285 reportBug(OS.str(), C); in printAndReport()
289 CheckerContext &C) const { in analyzerValue()
290 const Expr *Arg = getArgExpr(CE, C); in analyzerValue()
294 SVal V = C.getSVal(Arg); in analyzerValue()
296 printAndReport(C, Sym); in analyzerValue()
298 printAndReport(C, *I); in analyzerValue()
300 reportBug("n/a", C); in analyzerValue()
304 CheckerContext &C) const { in analyzerDumpSValType()
305 const Expr *Arg = getArgExpr(CE, C); in analyzerDumpSValType()
309 QualType Ty = C.getSVal(Arg).getType(C.getASTContext()); in analyzerDumpSValType()
310 reportBug(Ty.getAsString(), C); in analyzerDumpSValType()
314 CheckerContext &C) const { in analyzerDump()
315 const Expr *Arg = getArgExpr(CE, C); in analyzerDump()
319 SVal V = C.getSVal(Arg); in analyzerDump()
320 printAndReport(C, V); in analyzerDump()
324 CheckerContext &C) const { in analyzerGetExtent()
325 const MemRegion *MR = getArgRegion(CE, C); in analyzerGetExtent()
329 ProgramStateRef State = C.getState(); in analyzerGetExtent()
330 DefinedOrUnknownSVal Size = getDynamicExtent(State, MR, C.getSValBuilder()); in analyzerGetExtent()
332 State = State->BindExpr(CE, C.getLocationContext(), Size); in analyzerGetExtent()
333 C.addTransition(State); in analyzerGetExtent()
337 CheckerContext &C) const { in analyzerDumpExtent()
338 const MemRegion *MR = getArgRegion(CE, C); in analyzerDumpExtent()
343 getDynamicExtent(C.getState(), MR, C.getSValBuilder()); in analyzerDumpExtent()
344 printAndReport(C, Size); in analyzerDumpExtent()
348 CheckerContext &C) const { in analyzerDumpElementCount()
349 const MemRegion *MR = getArgRegion(CE, C); in analyzerDumpElementCount()
364 getDynamicElementCount(C.getState(), MR, C.getSValBuilder(), ElementTy); in analyzerDumpElementCount()
365 printAndReport(C, ElementCount); in analyzerDumpElementCount()
369 CheckerContext &C) const { in analyzerPrintState()
370 C.getState()->dump(); in analyzerPrintState()
374 CheckerContext &C) const { in analyzerWarnOnDeadSymbol()
375 const Expr *Arg = getArgExpr(CE, C); in analyzerWarnOnDeadSymbol()
379 SVal Val = C.getSVal(Arg); in analyzerWarnOnDeadSymbol()
384 ProgramStateRef State = C.getState(); in analyzerWarnOnDeadSymbol()
386 C.addTransition(State); in analyzerWarnOnDeadSymbol()
390 CheckerContext &C) const { in checkDeadSymbols()
391 ProgramStateRef State = C.getState(); in checkDeadSymbols()
393 ExplodedNode *N = C.getPredecessor(); in checkDeadSymbols()
400 if (ExplodedNode *BugNode = reportBug("SYMBOL DEAD", C)) in checkDeadSymbols()
411 C.addTransition(State, N); in checkDeadSymbols()
426 CheckerContext &C) const { in analyzerCrash()
431 CheckerContext &C) const { in analyzerHashDump()
432 const LangOptions &Opts = C.getLangOpts(); in analyzerHashDump()
433 const SourceManager &SM = C.getSourceManager(); in analyzerHashDump()
437 C.getLocationContext()->getDecl(), Opts); in analyzerHashDump()
439 reportBug(HashContent, C); in analyzerHashDump()
443 CheckerContext &C) const { in analyzerDenote()
446 C); in analyzerDenote()
450 SymbolRef Sym = C.getSVal(CE->getArg(0)).getAsSymbol(); in analyzerDenote()
452 reportBug("Not a symbol", C); in analyzerDenote()
458 reportBug("Not a string literal", C); in analyzerDenote()
462 ProgramStateRef State = C.getState(); in analyzerDenote()
464 C.addTransition(C.getState()->set<DenotedSymbols>(Sym, E)); in analyzerDenote()
526 CheckerContext &C) const { in analyzerExpress()
527 const Expr *Arg = getArgExpr(CE, C); in analyzerExpress()
531 SVal ArgVal = C.getSVal(CE->getArg(0)); in analyzerExpress()
534 reportBug("Not a symbol", C); in analyzerExpress()
538 SymbolExpressor V(C.getState()); in analyzerExpress()
541 reportBug("Unable to express", C); in analyzerExpress()
545 reportBug(*Str, C, ArgVal); in analyzerExpress()
549 CheckerContext &C) const { in analyzerIsTainted()
551 reportBug("clang_analyzer_isTainted() requires exactly one argument", C); in analyzerIsTainted()
555 taint::isTainted(C.getState(), CE->getArg(0), C.getLocationContext()); in analyzerIsTainted()
556 reportBug(IsTainted ? "YES" : "NO", C); in analyzerIsTainted()