• Home
  • Raw
  • Download

Lines Matching refs:C

76   bool evalCall(const CallExpr *CE, CheckerContext &C) const;
77 void checkDeadSymbols(SymbolReaper &SymReaper, CheckerContext &C) const;
80 void Fopen(CheckerContext &C, const CallExpr *CE) const;
81 void Tmpfile(CheckerContext &C, const CallExpr *CE) const;
82 void Fclose(CheckerContext &C, const CallExpr *CE) const;
83 void Fread(CheckerContext &C, const CallExpr *CE) const;
84 void Fwrite(CheckerContext &C, const CallExpr *CE) const;
85 void Fseek(CheckerContext &C, const CallExpr *CE) const;
86 void Ftell(CheckerContext &C, const CallExpr *CE) const;
87 void Rewind(CheckerContext &C, const CallExpr *CE) const;
88 void Fgetpos(CheckerContext &C, const CallExpr *CE) const;
89 void Fsetpos(CheckerContext &C, const CallExpr *CE) const;
90 void Clearerr(CheckerContext &C, const CallExpr *CE) const;
91 void Feof(CheckerContext &C, const CallExpr *CE) const;
92 void Ferror(CheckerContext &C, const CallExpr *CE) const;
93 void Fileno(CheckerContext &C, const CallExpr *CE) const;
95 void OpenFileAux(CheckerContext &C, const CallExpr *CE) const;
98 CheckerContext &C) const;
100 CheckerContext &C) const;
108 bool StreamChecker::evalCall(const CallExpr *CE, CheckerContext &C) const { in REGISTER_MAP_WITH_PROGRAMSTATE()
109 const FunctionDecl *FD = C.getCalleeDecl(CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
113 ASTContext &Ctx = C.getASTContext(); in REGISTER_MAP_WITH_PROGRAMSTATE()
144 Fopen(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
148 Tmpfile(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
152 Fclose(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
156 Fread(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
160 Fwrite(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
164 Fseek(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
168 Ftell(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
172 Rewind(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
176 Fgetpos(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
180 Fsetpos(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
184 Clearerr(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
188 Feof(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
192 Ferror(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
196 Fileno(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
203 void StreamChecker::Fopen(CheckerContext &C, const CallExpr *CE) const { in Fopen() argument
204 OpenFileAux(C, CE); in Fopen()
207 void StreamChecker::Tmpfile(CheckerContext &C, const CallExpr *CE) const { in Tmpfile() argument
208 OpenFileAux(C, CE); in Tmpfile()
211 void StreamChecker::OpenFileAux(CheckerContext &C, const CallExpr *CE) const { in OpenFileAux() argument
212 ProgramStateRef state = C.getState(); in OpenFileAux()
213 SValBuilder &svalBuilder = C.getSValBuilder(); in OpenFileAux()
214 const LocationContext *LCtx = C.getPredecessor()->getLocationContext(); in OpenFileAux()
216 C.blockCount()) in OpenFileAux()
218 state = state->BindExpr(CE, C.getLocationContext(), RetVal); in OpenFileAux()
220 ConstraintManager &CM = C.getConstraintManager(); in OpenFileAux()
233 C.addTransition(stateNotNull); in OpenFileAux()
234 C.addTransition(stateNull); in OpenFileAux()
238 void StreamChecker::Fclose(CheckerContext &C, const CallExpr *CE) const { in Fclose() argument
239 ProgramStateRef state = CheckDoubleClose(CE, C.getState(), C); in Fclose()
241 C.addTransition(state); in Fclose()
244 void StreamChecker::Fread(CheckerContext &C, const CallExpr *CE) const { in Fread() argument
245 ProgramStateRef state = C.getState(); in Fread()
246 if (!CheckNullStream(state->getSVal(CE->getArg(3), C.getLocationContext()), in Fread()
247 state, C)) in Fread()
251 void StreamChecker::Fwrite(CheckerContext &C, const CallExpr *CE) const { in Fwrite() argument
252 ProgramStateRef state = C.getState(); in Fwrite()
253 if (!CheckNullStream(state->getSVal(CE->getArg(3), C.getLocationContext()), in Fwrite()
254 state, C)) in Fwrite()
258 void StreamChecker::Fseek(CheckerContext &C, const CallExpr *CE) const { in Fseek() argument
259 ProgramStateRef state = C.getState(); in Fseek()
261 C.getLocationContext()), state, C))) in Fseek()
264 SVal Whence = state->getSVal(CE->getArg(2), C.getLocationContext()); in Fseek()
274 if (ExplodedNode *N = C.addTransition(state)) { in Fseek()
282 C.emitReport(R); in Fseek()
286 void StreamChecker::Ftell(CheckerContext &C, const CallExpr *CE) const { in Ftell() argument
287 ProgramStateRef state = C.getState(); in Ftell()
288 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Ftell()
289 state, C)) in Ftell()
293 void StreamChecker::Rewind(CheckerContext &C, const CallExpr *CE) const { in Rewind() argument
294 ProgramStateRef state = C.getState(); in Rewind()
295 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Rewind()
296 state, C)) in Rewind()
300 void StreamChecker::Fgetpos(CheckerContext &C, const CallExpr *CE) const { in Fgetpos() argument
301 ProgramStateRef state = C.getState(); in Fgetpos()
302 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Fgetpos()
303 state, C)) in Fgetpos()
307 void StreamChecker::Fsetpos(CheckerContext &C, const CallExpr *CE) const { in Fsetpos() argument
308 ProgramStateRef state = C.getState(); in Fsetpos()
309 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Fsetpos()
310 state, C)) in Fsetpos()
314 void StreamChecker::Clearerr(CheckerContext &C, const CallExpr *CE) const { in Clearerr() argument
315 ProgramStateRef state = C.getState(); in Clearerr()
316 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Clearerr()
317 state, C)) in Clearerr()
321 void StreamChecker::Feof(CheckerContext &C, const CallExpr *CE) const { in Feof() argument
322 ProgramStateRef state = C.getState(); in Feof()
323 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Feof()
324 state, C)) in Feof()
328 void StreamChecker::Ferror(CheckerContext &C, const CallExpr *CE) const { in Ferror() argument
329 ProgramStateRef state = C.getState(); in Ferror()
330 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Ferror()
331 state, C)) in Ferror()
335 void StreamChecker::Fileno(CheckerContext &C, const CallExpr *CE) const { in Fileno() argument
336 ProgramStateRef state = C.getState(); in Fileno()
337 if (!CheckNullStream(state->getSVal(CE->getArg(0), C.getLocationContext()), in Fileno()
338 state, C)) in Fileno()
343 CheckerContext &C) const { in CheckNullStream()
348 ConstraintManager &CM = C.getConstraintManager(); in CheckNullStream()
353 if (ExplodedNode *N = C.generateSink(stateNull)) { in CheckNullStream()
358 C.emitReport(R); in CheckNullStream()
367 CheckerContext &C) const { in CheckDoubleClose()
369 state->getSVal(CE->getArg(0), C.getLocationContext()).getAsSymbol(); in CheckDoubleClose()
382 ExplodedNode *N = C.generateSink(); in CheckDoubleClose()
390 C.emitReport(R); in CheckDoubleClose()
400 CheckerContext &C) const { in checkDeadSymbols()
405 ProgramStateRef state = C.getState(); in checkDeadSymbols()
411 ExplodedNode *N = C.generateSink(); in checkDeadSymbols()
419 C.emitReport(R); in checkDeadSymbols()