Lines Matching refs:CE
163 void evalMemcpy(CheckerContext &C, const CallExpr *CE, bool IsWide) const;
164 void evalMempcpy(CheckerContext &C, const CallExpr *CE) const;
165 void evalMemmove(CheckerContext &C, const CallExpr *CE) const;
166 void evalBcopy(CheckerContext &C, const CallExpr *CE) const;
167 void evalCopyCommon(CheckerContext &C, const CallExpr *CE,
172 void evalMemcmp(CheckerContext &C, const CallExpr *CE) const;
174 void evalstrLength(CheckerContext &C, const CallExpr *CE) const;
175 void evalstrnLength(CheckerContext &C, const CallExpr *CE) const;
177 const CallExpr *CE,
180 void evalStrcpy(CheckerContext &C, const CallExpr *CE) const;
181 void evalStrncpy(CheckerContext &C, const CallExpr *CE) const;
182 void evalStpcpy(CheckerContext &C, const CallExpr *CE) const;
183 void evalStrlcpy(CheckerContext &C, const CallExpr *CE) const;
184 void evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, bool ReturnEnd,
188 void evalStrcat(CheckerContext &C, const CallExpr *CE) const;
189 void evalStrncat(CheckerContext &C, const CallExpr *CE) const;
190 void evalStrlcat(CheckerContext &C, const CallExpr *CE) const;
192 void evalStrcmp(CheckerContext &C, const CallExpr *CE) const;
193 void evalStrncmp(CheckerContext &C, const CallExpr *CE) const;
194 void evalStrcasecmp(CheckerContext &C, const CallExpr *CE) const;
195 void evalStrncasecmp(CheckerContext &C, const CallExpr *CE) const;
197 const CallExpr *CE,
201 void evalStrsep(CheckerContext &C, const CallExpr *CE) const;
203 void evalStdCopy(CheckerContext &C, const CallExpr *CE) const;
204 void evalStdCopyBackward(CheckerContext &C, const CallExpr *CE) const;
205 void evalStdCopyCommon(CheckerContext &C, const CallExpr *CE) const;
206 void evalMemset(CheckerContext &C, const CallExpr *CE) const;
207 void evalBzero(CheckerContext &C, const CallExpr *CE) const;
1189 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallExpr *CE, in evalCopyCommon() argument
1211 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
1259 lastElement = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalCopyCommon()
1263 state = state->BindExpr(CE, LCtx, lastElement); in evalCopyCommon()
1267 state = state->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
1290 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE, in evalMemcpy() argument
1294 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMemcpy()
1295 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMemcpy()
1296 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemcpy()
1302 evalCopyCommon(C, CE, State, Size, Dest, Src, IsRestricted, IsMempcpy, in evalMemcpy()
1306 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE) const { in evalMempcpy()
1309 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMempcpy()
1310 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMempcpy()
1311 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMempcpy()
1315 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy, in evalMempcpy()
1319 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE) const { in evalMemmove()
1322 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMemmove()
1323 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMemmove()
1324 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemmove()
1328 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy, in evalMemmove()
1332 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { in evalBcopy()
1334 SourceArgExpr Src(CE->getArg(0), 0); in evalBcopy()
1335 DestinationArgExpr Dest = {CE->getArg(1), 1}; in evalBcopy()
1336 SizeArgExpr Size = {CE->getArg(2), 2}; in evalBcopy()
1340 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy, in evalBcopy()
1344 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE) const { in evalMemcmp()
1348 AnyArgExpr Left = {CE->getArg(0), 0}; in evalMemcmp()
1349 AnyArgExpr Right = {CE->getArg(1), 1}; in evalMemcmp()
1350 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemcmp()
1368 State = State->BindExpr(CE, LCtx, Builder.makeZeroVal(CE->getType())); in evalMemcmp()
1395 SameBuffer->BindExpr(CE, LCtx, Builder.makeZeroVal(CE->getType())); in evalMemcmp()
1408 SVal CmpV = Builder.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalMemcmp()
1409 State = State->BindExpr(CE, LCtx, CmpV); in evalMemcmp()
1416 const CallExpr *CE) const { in evalstrLength()
1418 evalstrLengthCommon(C, CE, /* IsStrnlen = */ false); in evalstrLength()
1422 const CallExpr *CE) const { in evalstrnLength()
1424 evalstrLengthCommon(C, CE, /* IsStrnlen = */ true); in evalstrnLength()
1427 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE, in evalstrLengthCommon() argument
1434 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1444 SVal zero = C.getSValBuilder().makeZeroVal(CE->getType()); in evalstrLengthCommon()
1445 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, zero); in evalstrLengthCommon()
1458 AnyArgExpr Arg = {CE->getArg(0), 0}; in evalstrLengthCommon()
1481 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1510 result = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalstrLengthCommon()
1534 result = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalstrLengthCommon()
1541 state = state->BindExpr(CE, LCtx, result); in evalstrLengthCommon()
1545 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrcpy()
1547 evalStrcpyCommon(C, CE, in evalStrcpy()
1553 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const { in evalStrncpy()
1555 evalStrcpyCommon(C, CE, in evalStrncpy()
1561 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const { in evalStpcpy()
1563 evalStrcpyCommon(C, CE, in evalStpcpy()
1569 void CStringChecker::evalStrlcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrlcpy()
1571 evalStrcpyCommon(C, CE, in evalStrlcpy()
1578 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const { in evalStrcat()
1580 evalStrcpyCommon(C, CE, in evalStrcat()
1586 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const { in evalStrncat()
1588 evalStrcpyCommon(C, CE, in evalStrncat()
1594 void CStringChecker::evalStrlcat(CheckerContext &C, const CallExpr *CE) const { in evalStrlcat()
1598 evalStrcpyCommon(C, CE, in evalStrlcat()
1605 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, in evalStrcpyCommon() argument
1618 DestinationArgExpr Dst = {CE->getArg(0), 0}; in evalStrcpyCommon()
1625 SourceArgExpr srcExpr = {CE->getArg(1), 1}; in evalStrcpyCommon()
1659 (IsBounded ? SizeArgExpr{CE->getArg(2), 2} : SrcExprAsSizeDummy), Dst, in evalStrcpyCommon()
1668 SizeArgExpr lenExpr = {CE->getArg(2), 2}; in evalStrcpyCommon()
1782 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, DstVal); in evalStrcpyCommon()
1786 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, strLength); in evalStrcpyCommon()
1791 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, retSize); in evalStrcpyCommon()
1860 finalStrLength = getCStringLength(C, state, CE, DstVal, true); in evalStrcpyCommon()
1979 Result = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStrcpyCommon()
1983 state = state->BindExpr(CE, LCtx, Result); in evalStrcpyCommon()
1987 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const { in evalStrcmp()
1989 evalStrcmpCommon(C, CE, /* IsBounded = */ false, /* IgnoreCase = */ false); in evalStrcmp()
1992 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const { in evalStrncmp()
1994 evalStrcmpCommon(C, CE, /* IsBounded = */ true, /* IgnoreCase = */ false); in evalStrncmp()
1998 const CallExpr *CE) const { in evalStrcasecmp()
2000 evalStrcmpCommon(C, CE, /* IsBounded = */ false, /* IgnoreCase = */ true); in evalStrcasecmp()
2004 const CallExpr *CE) const { in evalStrncasecmp()
2006 evalStrcmpCommon(C, CE, /* IsBounded = */ true, /* IgnoreCase = */ true); in evalStrncasecmp()
2009 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE, in evalStrcmpCommon() argument
2016 AnyArgExpr Left = {CE->getArg(0), 0}; in evalStrcmpCommon()
2023 AnyArgExpr Right = {CE->getArg(1), 1}; in evalStrcmpCommon()
2054 StSameBuf = StSameBuf->BindExpr(CE, LCtx, in evalStrcmpCommon()
2055 svalBuilder.makeZeroVal(CE->getType())); in evalStrcmpCommon()
2075 SVal resultVal = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, in evalStrcmpCommon()
2084 const Expr *lenExpr = CE->getArg(2); in evalStrcmpCommon()
2116 resultVal = svalBuilder.makeIntVal(compareRes, CE->getType()); in evalStrcmpCommon()
2119 DefinedSVal zeroVal = svalBuilder.makeIntVal(0, CE->getType()); in evalStrcmpCommon()
2132 state = state->BindExpr(CE, LCtx, resultVal); in evalStrcmpCommon()
2138 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const { in evalStrsep()
2141 SourceArgExpr SearchStrPtr = {CE->getArg(0), 0}; in evalStrsep()
2145 CE->getType().getUnqualifiedType() != CharPtrTy.getUnqualifiedType()) in evalStrsep()
2160 AnyArgExpr DelimStr = {CE->getArg(1), 1}; in evalStrsep()
2181 CE, in evalStrsep()
2189 Result = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStrsep()
2193 State = State->BindExpr(CE, LCtx, Result); in evalStrsep()
2198 void CStringChecker::evalStdCopy(CheckerContext &C, const CallExpr *CE) const { in evalStdCopy()
2199 evalStdCopyCommon(C, CE); in evalStdCopy()
2203 const CallExpr *CE) const { in evalStdCopyBackward()
2204 evalStdCopyCommon(C, CE); in evalStdCopyBackward()
2208 const CallExpr *CE) const { in evalStdCopyCommon()
2209 if (!CE->getArg(2)->getType()->isPointerType()) in evalStdCopyCommon()
2222 const Expr *Dst = CE->getArg(2); in evalStdCopyCommon()
2229 SVal ResultVal = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStdCopyCommon()
2230 State = State->BindExpr(CE, LCtx, ResultVal); in evalStdCopyCommon()
2235 void CStringChecker::evalMemset(CheckerContext &C, const CallExpr *CE) const { in evalMemset()
2239 DestinationArgExpr Buffer = {CE->getArg(0), 0}; in evalMemset()
2240 AnyArgExpr CharE = {CE->getArg(1), 1}; in evalMemset()
2241 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemset()
2259 ZeroSize = ZeroSize->BindExpr(CE, LCtx, BufferPtrVal); in evalMemset()
2281 State = State->BindExpr(CE, LCtx, BufferPtrVal); in evalMemset()
2285 void CStringChecker::evalBzero(CheckerContext &C, const CallExpr *CE) const { in evalBzero()
2288 DestinationArgExpr Buffer = {CE->getArg(0), 0}; in evalBzero()
2289 SizeArgExpr Size = {CE->getArg(1), 1}; in evalBzero()
2334 const auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in identifyCall() local
2335 if (!CE) in identifyCall()
2351 for (auto I : CE->arguments()) { in identifyCall()
2372 const auto *CE = cast<CallExpr>(Call.getOriginExpr()); in evalCall() local
2373 Callback(this, C, CE); in evalCall()