Lines Matching refs:CE
58 bool evalCall(const CallExpr *CE, CheckerContext &C) const;
74 void evalMemcpy(CheckerContext &C, const CallExpr *CE) const;
75 void evalMempcpy(CheckerContext &C, const CallExpr *CE) const;
76 void evalMemmove(CheckerContext &C, const CallExpr *CE) const;
77 void evalBcopy(CheckerContext &C, const CallExpr *CE) const;
78 void evalCopyCommon(CheckerContext &C, const CallExpr *CE,
86 void evalMemcmp(CheckerContext &C, const CallExpr *CE) const;
88 void evalstrLength(CheckerContext &C, const CallExpr *CE) const;
89 void evalstrnLength(CheckerContext &C, const CallExpr *CE) const;
91 const CallExpr *CE,
94 void evalStrcpy(CheckerContext &C, const CallExpr *CE) const;
95 void evalStrncpy(CheckerContext &C, const CallExpr *CE) const;
96 void evalStpcpy(CheckerContext &C, const CallExpr *CE) const;
98 const CallExpr *CE,
103 void evalStrcat(CheckerContext &C, const CallExpr *CE) const;
104 void evalStrncat(CheckerContext &C, const CallExpr *CE) const;
106 void evalStrcmp(CheckerContext &C, const CallExpr *CE) const;
107 void evalStrncmp(CheckerContext &C, const CallExpr *CE) const;
108 void evalStrcasecmp(CheckerContext &C, const CallExpr *CE) const;
109 void evalStrncasecmp(CheckerContext &C, const CallExpr *CE) const;
111 const CallExpr *CE,
883 const CallExpr *CE, in evalCopyCommon() argument
905 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
956 state = state->BindExpr(CE, LCtx, lastElement); in evalCopyCommon()
962 C.getSValBuilder().getConjuredSymbolVal(NULL, CE, LCtx, Count); in evalCopyCommon()
963 state = state->BindExpr(CE, LCtx, result); in evalCopyCommon()
969 state = state->BindExpr(CE, LCtx, destVal); in evalCopyCommon()
984 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE) const { in evalMemcpy()
985 if (CE->getNumArgs() < 3) in evalMemcpy()
990 const Expr *Dest = CE->getArg(0); in evalMemcpy()
993 evalCopyCommon(C, CE, state, CE->getArg(2), Dest, CE->getArg(1), true); in evalMemcpy()
996 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE) const { in evalMempcpy()
997 if (CE->getNumArgs() < 3) in evalMempcpy()
1002 const Expr *Dest = CE->getArg(0); in evalMempcpy()
1005 evalCopyCommon(C, CE, state, CE->getArg(2), Dest, CE->getArg(1), true, true); in evalMempcpy()
1008 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE) const { in evalMemmove()
1009 if (CE->getNumArgs() < 3) in evalMemmove()
1014 const Expr *Dest = CE->getArg(0); in evalMemmove()
1017 evalCopyCommon(C, CE, state, CE->getArg(2), Dest, CE->getArg(1)); in evalMemmove()
1020 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { in evalBcopy()
1021 if (CE->getNumArgs() < 3) in evalBcopy()
1025 evalCopyCommon(C, CE, C.getState(), in evalBcopy()
1026 CE->getArg(2), CE->getArg(1), CE->getArg(0)); in evalBcopy()
1029 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE) const { in evalMemcmp()
1030 if (CE->getNumArgs() < 3) in evalMemcmp()
1036 const Expr *Left = CE->getArg(0); in evalMemcmp()
1037 const Expr *Right = CE->getArg(1); in evalMemcmp()
1038 const Expr *Size = CE->getArg(2); in evalMemcmp()
1056 state = state->BindExpr(CE, LCtx, in evalMemcmp()
1057 svalBuilder.makeZeroVal(CE->getType())); in evalMemcmp()
1083 state = StSameBuf->BindExpr(CE, LCtx, in evalMemcmp()
1084 svalBuilder.makeZeroVal(CE->getType())); in evalMemcmp()
1097 SVal CmpV = svalBuilder.getConjuredSymbolVal(NULL, CE, LCtx, Count); in evalMemcmp()
1098 state = state->BindExpr(CE, LCtx, CmpV); in evalMemcmp()
1106 const CallExpr *CE) const { in evalstrLength()
1107 if (CE->getNumArgs() < 1) in evalstrLength()
1111 evalstrLengthCommon(C, CE, /* IsStrnlen = */ false); in evalstrLength()
1115 const CallExpr *CE) const { in evalstrnLength()
1116 if (CE->getNumArgs() < 2) in evalstrnLength()
1120 evalstrLengthCommon(C, CE, /* IsStrnlen = */ true); in evalstrnLength()
1123 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE, in evalstrLengthCommon() argument
1130 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1140 SVal zero = C.getSValBuilder().makeZeroVal(CE->getType()); in evalstrLengthCommon()
1141 stateZeroSize = stateZeroSize->BindExpr(CE, LCtx, zero); in evalstrLengthCommon()
1154 const Expr *Arg = CE->getArg(0); in evalstrLengthCommon()
1178 const Expr *maxlenExpr = CE->getArg(1); in evalstrLengthCommon()
1210 result = C.getSValBuilder().getConjuredSymbolVal(NULL, CE, LCtx, Count); in evalstrLengthCommon()
1238 result = C.getSValBuilder().getConjuredSymbolVal(NULL, CE, LCtx, Count); in evalstrLengthCommon()
1244 state = state->BindExpr(CE, LCtx, result); in evalstrLengthCommon()
1248 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrcpy()
1249 if (CE->getNumArgs() < 2) in evalStrcpy()
1253 evalStrcpyCommon(C, CE, in evalStrcpy()
1259 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const { in evalStrncpy()
1260 if (CE->getNumArgs() < 3) in evalStrncpy()
1264 evalStrcpyCommon(C, CE, in evalStrncpy()
1270 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const { in evalStpcpy()
1271 if (CE->getNumArgs() < 2) in evalStpcpy()
1275 evalStrcpyCommon(C, CE, in evalStpcpy()
1281 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const { in evalStrcat()
1282 if (CE->getNumArgs() < 2) in evalStrcat()
1286 evalStrcpyCommon(C, CE, in evalStrcat()
1292 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const { in evalStrncat()
1293 if (CE->getNumArgs() < 3) in evalStrncat()
1297 evalStrcpyCommon(C, CE, in evalStrncat()
1303 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, in evalStrcpyCommon() argument
1311 const Expr *Dst = CE->getArg(0); in evalStrcpyCommon()
1319 const Expr *srcExpr = CE->getArg(1); in evalStrcpyCommon()
1346 const Expr *lenExpr = CE->getArg(2); in evalStrcpyCommon()
1493 finalStrLength = getCStringLength(C, state, CE, DstVal, true); in evalStrcpyCommon()
1546 state = CheckLocation(C, state, CE->getArg(2), maxLastElement, in evalStrcpyCommon()
1598 Result = svalBuilder.getConjuredSymbolVal(NULL, CE, LCtx, Count); in evalStrcpyCommon()
1602 state = state->BindExpr(CE, LCtx, Result); in evalStrcpyCommon()
1606 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const { in evalStrcmp()
1607 if (CE->getNumArgs() < 2) in evalStrcmp()
1611 evalStrcmpCommon(C, CE, /* isBounded = */ false, /* ignoreCase = */ false); in evalStrcmp()
1614 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const { in evalStrncmp()
1615 if (CE->getNumArgs() < 3) in evalStrncmp()
1619 evalStrcmpCommon(C, CE, /* isBounded = */ true, /* ignoreCase = */ false); in evalStrncmp()
1623 const CallExpr *CE) const { in evalStrcasecmp()
1624 if (CE->getNumArgs() < 2) in evalStrcasecmp()
1628 evalStrcmpCommon(C, CE, /* isBounded = */ false, /* ignoreCase = */ true); in evalStrcasecmp()
1632 const CallExpr *CE) const { in evalStrncasecmp()
1633 if (CE->getNumArgs() < 3) in evalStrncasecmp()
1637 evalStrcmpCommon(C, CE, /* isBounded = */ true, /* ignoreCase = */ true); in evalStrncasecmp()
1640 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE, in evalStrcmpCommon() argument
1647 const Expr *s1 = CE->getArg(0); in evalStrcmpCommon()
1654 const Expr *s2 = CE->getArg(1); in evalStrcmpCommon()
1685 StSameBuf = StSameBuf->BindExpr(CE, LCtx, in evalStrcmpCommon()
1686 svalBuilder.makeZeroVal(CE->getType())); in evalStrcmpCommon()
1711 const Expr *lenExpr = CE->getArg(2); in evalStrcmpCommon()
1748 SVal resultVal = svalBuilder.makeIntVal(result, CE->getType()); in evalStrcmpCommon()
1749 state = state->BindExpr(CE, LCtx, resultVal); in evalStrcmpCommon()
1756 SVal resultVal = svalBuilder.getConjuredSymbolVal(NULL, CE, LCtx, Count); in evalStrcmpCommon()
1757 state = state->BindExpr(CE, LCtx, resultVal); in evalStrcmpCommon()
1768 bool CStringChecker::evalCall(const CallExpr *CE, CheckerContext &C) const { in evalCall() argument
1769 const FunctionDecl *FDecl = C.getCalleeDecl(CE); in evalCall()
1819 (this->*evalFunction)(C, CE); in evalCall()