Fixing review comments · llvm/llvm-project@91ac5ed (original) (raw)
`@@ -34,7 +34,7 @@ class DivZeroChecker : public Checker<check::PreStmt> {
`
34
34
``
35
35
`public:
`
36
36
`/// This checker class implements multiple user facing checker
`
37
``
`-
enum CheckKind { CK_DivZeroChecker, CK_TaintedDivChecker, CK_NumCheckKinds };
`
``
37
`+
enum CheckKind { CK_DivideZero, CK_TaintedDivChecker, CK_NumCheckKinds };
`
38
38
`bool ChecksEnabled[CK_NumCheckKinds] = {false};
`
39
39
` CheckerNameRef CheckNames[CK_NumCheckKinds];
`
40
40
`mutable std::unique_ptr BugTypes[CK_NumCheckKinds];
`
`@@ -52,14 +52,14 @@ static const Expr *getDenomExpr(const ExplodedNode *N) {
`
52
52
``
53
53
`void DivZeroChecker::reportBug(StringRef Msg, ProgramStateRef StateZero,
`
54
54
` CheckerContext &C) const {
`
55
``
`-
if (!ChecksEnabled[CK_DivZeroChecker])
`
``
55
`+
if (!ChecksEnabled[CK_DivideZero])
`
56
56
`return;
`
57
``
`-
if (!BugTypes[CK_DivZeroChecker])
`
58
``
`-
BugTypes[CK_DivZeroChecker].reset(
`
59
``
`-
new BugType(CheckNames[CK_DivZeroChecker], "Division by zero"));
`
``
57
`+
if (!BugTypes[CK_DivideZero])
`
``
58
`+
BugTypes[CK_DivideZero].reset(
`
``
59
`+
new BugType(CheckNames[CK_DivideZero], "Division by zero"));
`
60
60
`if (ExplodedNode *N = C.generateErrorNode(StateZero)) {
`
61
61
`auto R = std::make_unique(
`
62
``
`-
*BugTypes[CK_DivZeroChecker], Msg, N);
`
``
62
`+
*BugTypes[CK_DivideZero], Msg, N);
`
63
63
`bugreporter::trackExpressionValue(N, getDenomExpr(N), *R);
`
64
64
` C.emitReport(std::move(R));
`
65
65
` }
`
`@@ -74,7 +74,7 @@ void DivZeroChecker::reportTaintBug(
`
74
74
` BugTypes[CK_TaintedDivChecker].reset(
`
75
75
`new BugType(CheckNames[CK_TaintedDivChecker], "Division by zero",
`
76
76
` categories::TaintedData));
`
77
``
`-
if (ExplodedNode *N = C.generateErrorNode(StateZero)) {
`
``
77
`+
if (ExplodedNode *N = C.generateNonFatalErrorNode(StateZero)) {
`
78
78
`auto R = std::make_unique(
`
79
79
` *BugTypes[CK_TaintedDivChecker], Msg, N);
`
80
80
`bugreporter::trackExpressionValue(N, getDenomExpr(N), *R);
`
`@@ -118,7 +118,7 @@ void DivZeroChecker::checkPreStmt(const BinaryOperator *B,
`
118
118
`if ((stateNotZero && stateZero)) {
`
119
119
` std::vector taintedSyms = getTaintedSymbols(C.getState(), *DV);
`
120
120
`if (!taintedSyms.empty()) {
`
121
``
`-
reportTaintBug("Division by a tainted value, possibly zero", stateZero, C,
`
``
121
`+
reportTaintBug("Division by a tainted value, possibly zero", stateNotZero, C,
`
122
122
` taintedSyms);
`
123
123
`return;
`
124
124
` }
`
`@@ -131,9 +131,8 @@ void DivZeroChecker::checkPreStmt(const BinaryOperator *B,
`
131
131
``
132
132
`void ento::registerDivZeroChecker(CheckerManager &mgr) {
`
133
133
` DivZeroChecker *checker = mgr.registerChecker();
`
134
``
`-
;
`
135
``
`-
checker->ChecksEnabled[DivZeroChecker::CK_DivZeroChecker] = true;
`
136
``
`-
checker->CheckNames[DivZeroChecker::CK_DivZeroChecker] =
`
``
134
`+
checker->ChecksEnabled[DivZeroChecker::CK_DivideZero] = true;
`
``
135
`+
checker->CheckNames[DivZeroChecker::CK_DivideZero] =
`
137
136
` mgr.getCurrentCheckerName();
`
138
137
`}
`
139
138
``