Lines Matching refs:CE

75   bool evalCall(const CallExpr *CE, CheckerContext &C) const;
79 void Fopen(CheckerContext &C, const CallExpr *CE) const;
80 void Tmpfile(CheckerContext &C, const CallExpr *CE) const;
81 void Fclose(CheckerContext &C, const CallExpr *CE) const;
82 void Fread(CheckerContext &C, const CallExpr *CE) const;
83 void Fwrite(CheckerContext &C, const CallExpr *CE) const;
84 void Fseek(CheckerContext &C, const CallExpr *CE) const;
85 void Ftell(CheckerContext &C, const CallExpr *CE) const;
86 void Rewind(CheckerContext &C, const CallExpr *CE) const;
87 void Fgetpos(CheckerContext &C, const CallExpr *CE) const;
88 void Fsetpos(CheckerContext &C, const CallExpr *CE) const;
89 void Clearerr(CheckerContext &C, const CallExpr *CE) const;
90 void Feof(CheckerContext &C, const CallExpr *CE) const;
91 void Ferror(CheckerContext &C, const CallExpr *CE) const;
92 void Fileno(CheckerContext &C, const CallExpr *CE) const;
94 void OpenFileAux(CheckerContext &C, const CallExpr *CE) const;
98 ProgramStateRef CheckDoubleClose(const CallExpr *CE, ProgramStateRef state,
107 bool StreamChecker::evalCall(const CallExpr *CE, CheckerContext &C) const { in REGISTER_MAP_WITH_PROGRAMSTATE()
108 const FunctionDecl *FD = C.getCalleeDecl(CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
143 Fopen(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
147 Tmpfile(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
151 Fclose(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
155 Fread(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
159 Fwrite(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
163 Fseek(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
167 Ftell(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
171 Rewind(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
175 Fgetpos(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
179 Fsetpos(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
183 Clearerr(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
187 Feof(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
191 Ferror(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
195 Fileno(C, CE); in REGISTER_MAP_WITH_PROGRAMSTATE()
202 void StreamChecker::Fopen(CheckerContext &C, const CallExpr *CE) const { in Fopen()
203 OpenFileAux(C, CE); in Fopen()
206 void StreamChecker::Tmpfile(CheckerContext &C, const CallExpr *CE) const { in Tmpfile()
207 OpenFileAux(C, CE); in Tmpfile()
210 void StreamChecker::OpenFileAux(CheckerContext &C, const CallExpr *CE) const { in OpenFileAux()
214 DefinedSVal RetVal = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, in OpenFileAux()
217 state = state->BindExpr(CE, C.getLocationContext(), RetVal); in OpenFileAux()
228 stateNotNull->set<StreamMap>(Sym,StreamState::getOpened(CE)); in OpenFileAux()
230 stateNull->set<StreamMap>(Sym, StreamState::getOpenFailed(CE)); in OpenFileAux()
237 void StreamChecker::Fclose(CheckerContext &C, const CallExpr *CE) const { in Fclose()
238 ProgramStateRef state = CheckDoubleClose(CE, C.getState(), C); in Fclose()
243 void StreamChecker::Fread(CheckerContext &C, const CallExpr *CE) const { in Fread()
245 if (!CheckNullStream(C.getSVal(CE->getArg(3)), state, C)) in Fread()
249 void StreamChecker::Fwrite(CheckerContext &C, const CallExpr *CE) const { in Fwrite()
251 if (!CheckNullStream(C.getSVal(CE->getArg(3)), state, C)) in Fwrite()
255 void StreamChecker::Fseek(CheckerContext &C, const CallExpr *CE) const { in Fseek()
257 if (!(state = CheckNullStream(C.getSVal(CE->getArg(0)), state, C))) in Fseek()
260 SVal Whence = state->getSVal(CE->getArg(2), C.getLocationContext()); in Fseek()
281 void StreamChecker::Ftell(CheckerContext &C, const CallExpr *CE) const { in Ftell()
283 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Ftell()
287 void StreamChecker::Rewind(CheckerContext &C, const CallExpr *CE) const { in Rewind()
289 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Rewind()
293 void StreamChecker::Fgetpos(CheckerContext &C, const CallExpr *CE) const { in Fgetpos()
295 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Fgetpos()
299 void StreamChecker::Fsetpos(CheckerContext &C, const CallExpr *CE) const { in Fsetpos()
301 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Fsetpos()
305 void StreamChecker::Clearerr(CheckerContext &C, const CallExpr *CE) const { in Clearerr()
307 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Clearerr()
311 void StreamChecker::Feof(CheckerContext &C, const CallExpr *CE) const { in Feof()
313 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Feof()
317 void StreamChecker::Ferror(CheckerContext &C, const CallExpr *CE) const { in Ferror()
319 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Ferror()
323 void StreamChecker::Fileno(CheckerContext &C, const CallExpr *CE) const { in Fileno()
325 if (!CheckNullStream(C.getSVal(CE->getArg(0)), state, C)) in Fileno()
352 ProgramStateRef StreamChecker::CheckDoubleClose(const CallExpr *CE, in CheckDoubleClose() argument
355 SymbolRef Sym = C.getSVal(CE->getArg(0)).getAsSymbol(); in CheckDoubleClose()
381 return state->set<StreamMap>(Sym, StreamState::getClosed(CE)); in CheckDoubleClose()