forked from OSchip/llvm-project
[analyzer] Refactor trackExpressionValue to accept TrackingOptions
Differential Revision: https://reviews.llvm.org/D103633
This commit is contained in:
parent
51d4704d5e
commit
57006d2f6d
|
@ -353,9 +353,7 @@ public:
|
|||
/// statement. Note that returning \c true does not actually imply
|
||||
/// that any visitors were added.
|
||||
bool trackExpressionValue(const ExplodedNode *N, const Expr *E,
|
||||
PathSensitiveBugReport &R,
|
||||
TrackingKind TKind = TrackingKind::Thorough,
|
||||
bool EnableNullFPSuppression = true);
|
||||
PathSensitiveBugReport &R, TrackingOptions Opts = {});
|
||||
|
||||
/// Track how the value got stored into the given region and where it came
|
||||
/// from.
|
||||
|
|
|
@ -284,8 +284,9 @@ void MIGChecker::checkReturnAux(const ReturnStmt *RS, CheckerContext &C) const {
|
|||
N);
|
||||
|
||||
R->addRange(RS->getSourceRange());
|
||||
bugreporter::trackExpressionValue(N, RS->getRetValue(), *R,
|
||||
bugreporter::TrackingKind::Thorough, false);
|
||||
bugreporter::trackExpressionValue(
|
||||
N, RS->getRetValue(), *R,
|
||||
{bugreporter::TrackingKind::Thorough, /*EnableNullFPSuppression=*/false});
|
||||
C.emitReport(std::move(R));
|
||||
}
|
||||
|
||||
|
|
|
@ -147,8 +147,9 @@ void ObjCContainersChecker::checkPreStmt(const CallExpr *CE,
|
|||
auto R = std::make_unique<PathSensitiveBugReport>(
|
||||
*BT, "Index is out of bounds", N);
|
||||
R->addRange(IdxExpr->getSourceRange());
|
||||
bugreporter::trackExpressionValue(
|
||||
N, IdxExpr, *R, bugreporter::TrackingKind::Thorough, false);
|
||||
bugreporter::trackExpressionValue(N, IdxExpr, *R,
|
||||
{bugreporter::TrackingKind::Thorough,
|
||||
/*EnableNullFPSuppression=*/false});
|
||||
C.emitReport(std::move(R));
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2314,11 +2314,11 @@ PathDiagnosticPieceRef Tracker::handle(StoreInfo SI, TrackingOptions Opts) {
|
|||
|
||||
bool bugreporter::trackExpressionValue(const ExplodedNode *InputNode,
|
||||
const Expr *E,
|
||||
PathSensitiveBugReport &report,
|
||||
bugreporter::TrackingKind TKind,
|
||||
bool EnableNullFPSuppression) {
|
||||
return Tracker::create(report)
|
||||
->track(E, InputNode, {TKind, EnableNullFPSuppression})
|
||||
|
||||
PathSensitiveBugReport &Report,
|
||||
TrackingOptions Opts) {
|
||||
return Tracker::create(Report)
|
||||
->track(E, InputNode, Opts)
|
||||
.FoundSomethingToTrack;
|
||||
}
|
||||
|
||||
|
@ -2375,9 +2375,9 @@ NilReceiverBRVisitor::VisitNode(const ExplodedNode *N, BugReporterContext &BRC,
|
|||
// The receiver was nil, and hence the method was skipped.
|
||||
// Register a BugReporterVisitor to issue a message telling us how
|
||||
// the receiver was null.
|
||||
bugreporter::trackExpressionValue(
|
||||
N, Receiver, BR, bugreporter::TrackingKind::Thorough,
|
||||
/*EnableNullFPSuppression*/ false);
|
||||
bugreporter::trackExpressionValue(N, Receiver, BR,
|
||||
{bugreporter::TrackingKind::Thorough,
|
||||
/*EnableNullFPSuppression*/ false});
|
||||
// Issue a message saying that the method was skipped.
|
||||
PathDiagnosticLocation L(Receiver, BRC.getSourceManager(),
|
||||
N->getLocationContext());
|
||||
|
|
Loading…
Reference in New Issue