Lines Matching refs:CE

152   void evalMemcpy(CheckerContext &C, const CallExpr *CE) const;
153 void evalMempcpy(CheckerContext &C, const CallExpr *CE) const;
154 void evalMemmove(CheckerContext &C, const CallExpr *CE) const;
155 void evalBcopy(CheckerContext &C, const CallExpr *CE) const;
156 void evalCopyCommon(CheckerContext &C, const CallExpr *CE,
161 void evalMemcmp(CheckerContext &C, const CallExpr *CE) const;
163 void evalstrLength(CheckerContext &C, const CallExpr *CE) const;
164 void evalstrnLength(CheckerContext &C, const CallExpr *CE) const;
166 const CallExpr *CE,
169 void evalStrcpy(CheckerContext &C, const CallExpr *CE) const;
170 void evalStrncpy(CheckerContext &C, const CallExpr *CE) const;
171 void evalStpcpy(CheckerContext &C, const CallExpr *CE) const;
172 void evalStrlcpy(CheckerContext &C, const CallExpr *CE) const;
173 void evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, bool ReturnEnd,
177 void evalStrcat(CheckerContext &C, const CallExpr *CE) const;
178 void evalStrncat(CheckerContext &C, const CallExpr *CE) const;
179 void evalStrlcat(CheckerContext &C, const CallExpr *CE) const;
181 void evalStrcmp(CheckerContext &C, const CallExpr *CE) const;
182 void evalStrncmp(CheckerContext &C, const CallExpr *CE) const;
183 void evalStrcasecmp(CheckerContext &C, const CallExpr *CE) const;
184 void evalStrncasecmp(CheckerContext &C, const CallExpr *CE) const;
186 const CallExpr *CE,
190 void evalStrsep(CheckerContext &C, const CallExpr *CE) const;
192 void evalStdCopy(CheckerContext &C, const CallExpr *CE) const;
193 void evalStdCopyBackward(CheckerContext &C, const CallExpr *CE) const;
194 void evalStdCopyCommon(CheckerContext &C, const CallExpr *CE) const;
195 void evalMemset(CheckerContext &C, const CallExpr *CE) const;
196 void evalBzero(CheckerContext &C, const CallExpr *CE) const;
1126 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallExpr *CE, in evalCopyCommon() argument
1148 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
1196 lastElement = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalCopyCommon()
1200 state = state->BindExpr(CE, LCtx, lastElement); in evalCopyCommon()
1204 state = state->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
1227 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE) const { in evalMemcpy()
1230 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMemcpy()
1231 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMemcpy()
1232 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemcpy()
1238 evalCopyCommon(C, CE, State, Size, Dest, Src, IsRestricted, IsMempcpy); in evalMemcpy()
1241 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE) const { in evalMempcpy()
1244 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMempcpy()
1245 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMempcpy()
1246 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMempcpy()
1250 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy); in evalMempcpy()
1253 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE) const { in evalMemmove()
1256 DestinationArgExpr Dest = {CE->getArg(0), 0}; in evalMemmove()
1257 SourceArgExpr Src = {CE->getArg(1), 1}; in evalMemmove()
1258 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemmove()
1262 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy); in evalMemmove()
1265 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { in evalBcopy()
1267 SourceArgExpr Src(CE->getArg(0), 0); in evalBcopy()
1268 DestinationArgExpr Dest = {CE->getArg(1), 1}; in evalBcopy()
1269 SizeArgExpr Size = {CE->getArg(2), 2}; in evalBcopy()
1273 evalCopyCommon(C, CE, C.getState(), Size, Dest, Src, IsRestricted, IsMempcpy); in evalBcopy()
1276 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE) const { in evalMemcmp()
1280 AnyArgExpr Left = {CE->getArg(0), 0}; in evalMemcmp()
1281 AnyArgExpr Right = {CE->getArg(1), 1}; in evalMemcmp()
1282 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemcmp()
1300 State = State->BindExpr(CE, LCtx, Builder.makeZeroVal(CE->getType())); in evalMemcmp()
1327 SameBuffer->BindExpr(CE, LCtx, Builder.makeZeroVal(CE->getType())); in evalMemcmp()
1340 SVal CmpV = Builder.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalMemcmp()
1341 State = State->BindExpr(CE, LCtx, CmpV); in evalMemcmp()
1348 const CallExpr *CE) const { in evalstrLength()
1350 evalstrLengthCommon(C, CE, /* IsStrnlen = */ false); in evalstrLength()
1354 const CallExpr *CE) const { in evalstrnLength()
1356 evalstrLengthCommon(C, CE, /* IsStrnlen = */ true); in evalstrnLength()
1359 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE, in evalstrLengthCommon() argument
1366 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1376 SVal zero = C.getSValBuilder().makeZeroVal(CE->getType()); in evalstrLengthCommon()
1377 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, zero); in evalstrLengthCommon()
1390 AnyArgExpr Arg = {CE->getArg(0), 0}; in evalstrLengthCommon()
1413 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1442 result = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalstrLengthCommon()
1466 result = C.getSValBuilder().conjureSymbolVal(nullptr, CE, LCtx, in evalstrLengthCommon()
1473 state = state->BindExpr(CE, LCtx, result); in evalstrLengthCommon()
1477 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrcpy()
1479 evalStrcpyCommon(C, CE, in evalStrcpy()
1485 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const { in evalStrncpy()
1487 evalStrcpyCommon(C, CE, in evalStrncpy()
1493 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const { in evalStpcpy()
1495 evalStrcpyCommon(C, CE, in evalStpcpy()
1501 void CStringChecker::evalStrlcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrlcpy()
1503 evalStrcpyCommon(C, CE, in evalStrlcpy()
1510 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const { in evalStrcat()
1512 evalStrcpyCommon(C, CE, in evalStrcat()
1518 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const { in evalStrncat()
1520 evalStrcpyCommon(C, CE, in evalStrncat()
1526 void CStringChecker::evalStrlcat(CheckerContext &C, const CallExpr *CE) const { in evalStrlcat()
1530 evalStrcpyCommon(C, CE, in evalStrlcat()
1537 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, in evalStrcpyCommon() argument
1550 DestinationArgExpr Dst = {CE->getArg(0), 0}; in evalStrcpyCommon()
1557 SourceArgExpr srcExpr = {CE->getArg(1), 1}; in evalStrcpyCommon()
1591 (IsBounded ? SizeArgExpr{CE->getArg(2), 2} : SrcExprAsSizeDummy), Dst, in evalStrcpyCommon()
1600 SizeArgExpr lenExpr = {CE->getArg(2), 2}; in evalStrcpyCommon()
1714 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, DstVal); in evalStrcpyCommon()
1718 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, strLength); in evalStrcpyCommon()
1723 StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, retSize); in evalStrcpyCommon()
1792 finalStrLength = getCStringLength(C, state, CE, DstVal, true); in evalStrcpyCommon()
1911 Result = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStrcpyCommon()
1915 state = state->BindExpr(CE, LCtx, Result); in evalStrcpyCommon()
1919 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const { in evalStrcmp()
1921 evalStrcmpCommon(C, CE, /* IsBounded = */ false, /* IgnoreCase = */ false); in evalStrcmp()
1924 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const { in evalStrncmp()
1926 evalStrcmpCommon(C, CE, /* IsBounded = */ true, /* IgnoreCase = */ false); in evalStrncmp()
1930 const CallExpr *CE) const { in evalStrcasecmp()
1932 evalStrcmpCommon(C, CE, /* IsBounded = */ false, /* IgnoreCase = */ true); in evalStrcasecmp()
1936 const CallExpr *CE) const { in evalStrncasecmp()
1938 evalStrcmpCommon(C, CE, /* IsBounded = */ true, /* IgnoreCase = */ true); in evalStrncasecmp()
1941 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE, in evalStrcmpCommon() argument
1948 AnyArgExpr Left = {CE->getArg(0), 0}; in evalStrcmpCommon()
1955 AnyArgExpr Right = {CE->getArg(1), 1}; in evalStrcmpCommon()
1986 StSameBuf = StSameBuf->BindExpr(CE, LCtx, in evalStrcmpCommon()
1987 svalBuilder.makeZeroVal(CE->getType())); in evalStrcmpCommon()
2007 SVal resultVal = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx, in evalStrcmpCommon()
2016 const Expr *lenExpr = CE->getArg(2); in evalStrcmpCommon()
2048 resultVal = svalBuilder.makeIntVal(compareRes, CE->getType()); in evalStrcmpCommon()
2051 DefinedSVal zeroVal = svalBuilder.makeIntVal(0, CE->getType()); in evalStrcmpCommon()
2064 state = state->BindExpr(CE, LCtx, resultVal); in evalStrcmpCommon()
2070 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const { in evalStrsep()
2073 SourceArgExpr SearchStrPtr = {CE->getArg(0), 0}; in evalStrsep()
2077 CE->getType().getUnqualifiedType() != CharPtrTy.getUnqualifiedType()) in evalStrsep()
2092 AnyArgExpr DelimStr = {CE->getArg(1), 1}; in evalStrsep()
2113 CE, in evalStrsep()
2121 Result = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStrsep()
2125 State = State->BindExpr(CE, LCtx, Result); in evalStrsep()
2130 void CStringChecker::evalStdCopy(CheckerContext &C, const CallExpr *CE) const { in evalStdCopy()
2131 evalStdCopyCommon(C, CE); in evalStdCopy()
2135 const CallExpr *CE) const { in evalStdCopyBackward()
2136 evalStdCopyCommon(C, CE); in evalStdCopyBackward()
2140 const CallExpr *CE) const { in evalStdCopyCommon()
2141 if (!CE->getArg(2)->getType()->isPointerType()) in evalStdCopyCommon()
2154 const Expr *Dst = CE->getArg(2); in evalStdCopyCommon()
2161 SVal ResultVal = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in evalStdCopyCommon()
2162 State = State->BindExpr(CE, LCtx, ResultVal); in evalStdCopyCommon()
2167 void CStringChecker::evalMemset(CheckerContext &C, const CallExpr *CE) const { in evalMemset()
2171 DestinationArgExpr Buffer = {CE->getArg(0), 0}; in evalMemset()
2172 AnyArgExpr CharE = {CE->getArg(1), 1}; in evalMemset()
2173 SizeArgExpr Size = {CE->getArg(2), 2}; in evalMemset()
2191 ZeroSize = ZeroSize->BindExpr(CE, LCtx, BufferPtrVal); in evalMemset()
2213 State = State->BindExpr(CE, LCtx, BufferPtrVal); in evalMemset()
2217 void CStringChecker::evalBzero(CheckerContext &C, const CallExpr *CE) const { in evalBzero()
2220 DestinationArgExpr Buffer = {CE->getArg(0), 0}; in evalBzero()
2221 SizeArgExpr Size = {CE->getArg(1), 1}; in evalBzero()
2266 const auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in identifyCall() local
2267 if (!CE) in identifyCall()
2284 for (auto I : CE->arguments()) { in identifyCall()
2305 const auto *CE = cast<CallExpr>(Call.getOriginExpr()); in evalCall() local
2306 (this->*Callback)(C, CE); in evalCall()