Lines Matching refs:CE
185 void evalMemcpy(CheckerContext &C, const CallExpr *CE, CharKind CK) const;
186 void evalMempcpy(CheckerContext &C, const CallExpr *CE, CharKind CK) const;
187 void evalMemmove(CheckerContext &C, const CallExpr *CE, CharKind CK) const;
188 void evalBcopy(CheckerContext &C, const CallExpr *CE) const;
189 void evalCopyCommon(CheckerContext &C, const CallExpr *CE,
194 void evalMemcmp(CheckerContext &C, const CallExpr *CE, CharKind CK) const;
196 void evalstrLength(CheckerContext &C, const CallExpr *CE) const;
197 void evalstrnLength(CheckerContext &C, const CallExpr *CE) const;
199 const CallExpr *CE,
202 void evalStrcpy(CheckerContext &C, const CallExpr *CE) const;
203 void evalStrncpy(CheckerContext &C, const CallExpr *CE) const;
204 void evalStpcpy(CheckerContext &C, const CallExpr *CE) const;
205 void evalStrlcpy(CheckerContext &C, const CallExpr *CE) const;
206 void evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, bool ReturnEnd,
210 void evalStrcat(CheckerContext &C, const CallExpr *CE) const;
211 void evalStrncat(CheckerContext &C, const CallExpr *CE) const;
212 void evalStrlcat(CheckerContext &C, const CallExpr *CE) const;
214 void evalStrcmp(CheckerContext &C, const CallExpr *CE) const;
215 void evalStrncmp(CheckerContext &C, const CallExpr *CE) const;
216 void evalStrcasecmp(CheckerContext &C, const CallExpr *CE) const;
217 void evalStrncasecmp(CheckerContext &C, const CallExpr *CE) const;
219 const CallExpr *CE,
223 void evalStrsep(CheckerContext &C, const CallExpr *CE) const;
225 void evalStdCopy(CheckerContext &C, const CallExpr *CE) const;
226 void evalStdCopyBackward(CheckerContext &C, const CallExpr *CE) const;
227 void evalStdCopyCommon(CheckerContext &C, const CallExpr *CE) const;
228 void evalMemset(CheckerContext &C, const CallExpr *CE) const;
229 void evalBzero(CheckerContext &C, const CallExpr *CE) const;
1213 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallExpr *CE, in evalCopyCommon() argument
1235 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
1283 lastElement = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalCopyCommon()
1287 state = state->BindExpr(CE, LCtx, lastElement); in evalCopyCommon()
1291 state = state->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
1314 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE, in evalMemcpy() argument
1318 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMemcpy()
1319 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMemcpy()
1320 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemcpy()
1326 evalCopyCommon(C, CE, State, Size, Dest, Src, IsRestricted, IsMempcpy, CK); in evalMemcpy()
1329 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE, in evalMempcpy() argument
1333 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMempcpy()
1334 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMempcpy()
1335 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMempcpy()
1339 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy, in evalMempcpy()
1343 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE, in evalMemmove() argument
1347 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMemmove()
1348 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMemmove()
1349 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemmove()
1353 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy, in evalMemmove()
1357 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { in evalBcopy()
1359 SourceArgExpr Src(CE->getArg(0), 0); in evalBcopy()
1360 DestinationArgExpr Dest = {CE->getArg(1), 1}; in evalBcopy()
1361 SizeArgExpr Size = {CE->getArg(2), 2}; in evalBcopy()
1365 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy, in evalBcopy()
1369 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE, in evalMemcmp() argument
1374 AnyArgExpr Left = {CE->getArg(0), 0}; in evalMemcmp()
1375 AnyArgExpr Right = {CE->getArg(1), 1}; in evalMemcmp()
1376 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemcmp()
1394 State = State->BindExpr(CE, LCtx, Builder.makeZeroVal(CE->getType())); in evalMemcmp()
1421 SameBuffer->BindExpr(CE, LCtx, Builder.makeZeroVal(CE->getType())); in evalMemcmp()
1434 SVal CmpV = Builder.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalMemcmp()
1435 State = State->BindExpr(CE, LCtx, CmpV); in evalMemcmp()
1442 const CallExpr *CE) const { in evalstrLength()
1444 evalstrLengthCommon(C, CE, /* IsStrnlen = */ false); in evalstrLength()
1448 const CallExpr *CE) const { in evalstrnLength()
1450 evalstrLengthCommon(C, CE, /* IsStrnlen = */ true); in evalstrnLength()
1453 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE, in evalstrLengthCommon() argument
1460 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1470 SVal zero = C.getSValBuilder().makeZeroVal(CE->getType()); in evalstrLengthCommon()
1471 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, zero); in evalstrLengthCommon()
1484 AnyArgExpr Arg = {CE->getArg(0), 0}; in evalstrLengthCommon()
1507 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1536 result = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalstrLengthCommon()
1560 result = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalstrLengthCommon()
1567 state = state->BindExpr(CE, LCtx, result); in evalstrLengthCommon()
1571 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrcpy()
1573 evalStrcpyCommon(C, CE, in evalStrcpy()
1579 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const { in evalStrncpy()
1581 evalStrcpyCommon(C, CE, in evalStrncpy()
1587 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const { in evalStpcpy()
1589 evalStrcpyCommon(C, CE, in evalStpcpy()
1595 void CStringChecker::evalStrlcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrlcpy()
1597 evalStrcpyCommon(C, CE, in evalStrlcpy()
1604 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const { in evalStrcat()
1606 evalStrcpyCommon(C, CE, in evalStrcat()
1612 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const { in evalStrncat()
1614 evalStrcpyCommon(C, CE, in evalStrncat()
1620 void CStringChecker::evalStrlcat(CheckerContext &C, const CallExpr *CE) const { in evalStrlcat()
1624 evalStrcpyCommon(C, CE, in evalStrlcat()
1631 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, in evalStrcpyCommon() argument
1644 DestinationArgExpr Dst = {CE->getArg(0), 0}; in evalStrcpyCommon()
1651 SourceArgExpr srcExpr = {CE->getArg(1), 1}; in evalStrcpyCommon()
1685 (IsBounded ? SizeArgExpr{CE->getArg(2), 2} : SrcExprAsSizeDummy), Dst, in evalStrcpyCommon()
1694 SizeArgExpr lenExpr = {CE->getArg(2), 2}; in evalStrcpyCommon()
1808 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, DstVal); in evalStrcpyCommon()
1812 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, strLength); in evalStrcpyCommon()
1817 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, retSize); in evalStrcpyCommon()
1886 finalStrLength = getCStringLength(C, state, CE, DstVal, true); in evalStrcpyCommon()
2006 Result = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStrcpyCommon()
2010 state = state->BindExpr(CE, LCtx, Result); in evalStrcpyCommon()
2014 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const { in evalStrcmp()
2016 evalStrcmpCommon(C, CE, /* IsBounded = */ false, /* IgnoreCase = */ false); in evalStrcmp()
2019 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const { in evalStrncmp()
2021 evalStrcmpCommon(C, CE, /* IsBounded = */ true, /* IgnoreCase = */ false); in evalStrncmp()
2025 const CallExpr *CE) const { in evalStrcasecmp()
2027 evalStrcmpCommon(C, CE, /* IsBounded = */ false, /* IgnoreCase = */ true); in evalStrcasecmp()
2031 const CallExpr *CE) const { in evalStrncasecmp()
2033 evalStrcmpCommon(C, CE, /* IsBounded = */ true, /* IgnoreCase = */ true); in evalStrncasecmp()
2036 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE, in evalStrcmpCommon() argument
2043 AnyArgExpr Left = {CE->getArg(0), 0}; in evalStrcmpCommon()
2050 AnyArgExpr Right = {CE->getArg(1), 1}; in evalStrcmpCommon()
2081 StSameBuf = StSameBuf->BindExpr(CE, LCtx, in evalStrcmpCommon()
2082 svalBuilder.makeZeroVal(CE->getType())); in evalStrcmpCommon()
2102 SVal resultVal = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, in evalStrcmpCommon()
2111 const Expr *lenExpr = CE->getArg(2); in evalStrcmpCommon()
2143 resultVal = svalBuilder.makeIntVal(compareRes, CE->getType()); in evalStrcmpCommon()
2146 DefinedSVal zeroVal = svalBuilder.makeIntVal(0, CE->getType()); in evalStrcmpCommon()
2159 state = state->BindExpr(CE, LCtx, resultVal); in evalStrcmpCommon()
2165 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const { in evalStrsep()
2168 SourceArgExpr SearchStrPtr = {CE->getArg(0), 0}; in evalStrsep()
2172 CE->getType().getUnqualifiedType() != CharPtrTy.getUnqualifiedType()) in evalStrsep()
2187 AnyArgExpr DelimStr = {CE->getArg(1), 1}; in evalStrsep()
2208 CE, in evalStrsep()
2216 Result = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStrsep()
2220 State = State->BindExpr(CE, LCtx, Result); in evalStrsep()
2225 void CStringChecker::evalStdCopy(CheckerContext &C, const CallExpr *CE) const { in evalStdCopy()
2226 evalStdCopyCommon(C, CE); in evalStdCopy()
2230 const CallExpr *CE) const { in evalStdCopyBackward()
2231 evalStdCopyCommon(C, CE); in evalStdCopyBackward()
2235 const CallExpr *CE) const { in evalStdCopyCommon()
2236 if (!CE->getArg(2)->getType()->isPointerType()) in evalStdCopyCommon()
2249 const Expr *Dst = CE->getArg(2); in evalStdCopyCommon()
2256 SVal ResultVal = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStdCopyCommon()
2257 State = State->BindExpr(CE, LCtx, ResultVal); in evalStdCopyCommon()
2262 void CStringChecker::evalMemset(CheckerContext &C, const CallExpr *CE) const { in evalMemset()
2266 DestinationArgExpr Buffer = {CE->getArg(0), 0}; in evalMemset()
2267 AnyArgExpr CharE = {CE->getArg(1), 1}; in evalMemset()
2268 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemset()
2286 ZeroSize = ZeroSize->BindExpr(CE, LCtx, BufferPtrVal); in evalMemset()
2308 State = State->BindExpr(CE, LCtx, BufferPtrVal); in evalMemset()
2312 void CStringChecker::evalBzero(CheckerContext &C, const CallExpr *CE) const { in evalBzero()
2315 DestinationArgExpr Buffer = {CE->getArg(0), 0}; in evalBzero()
2316 SizeArgExpr Size = {CE->getArg(1), 1}; in evalBzero()
2361 const auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in identifyCall() local
2362 if (!CE) in identifyCall()
2378 for (auto I : CE->arguments()) { in identifyCall()
2399 const auto *CE = cast<CallExpr>(Call.getOriginExpr()); in evalCall() local
2400 Callback(this, C, CE); in evalCall()