]> granicus.if.org Git - clang/commitdiff
[analyzer] Refactor checks in IDC visitor for consistency and speed
authorAnna Zaks <ganna@apple.com>
Fri, 15 Mar 2013 01:15:14 +0000 (01:15 +0000)
committerAnna Zaks <ganna@apple.com>
Fri, 15 Mar 2013 01:15:14 +0000 (01:15 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177138 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/BugReporterVisitors.cpp

index 550a74667fb4387694091d01770b591ebc2faf3c..8cd3eecf2b7ef1f96086d1a20477674885525cf4 100644 (file)
@@ -722,10 +722,6 @@ SuppressInlineDefensiveChecksVisitor::VisitNode(const ExplodedNode *Succ,
                                                 BugReport &BR) {
   if (IsSatisfied)
     return 0;
-  AnalyzerOptions &Options =
-  BRC.getBugReporter().getEngine().getAnalysisManager().options;
-  if (!Options.shouldSuppressInlinedDefensiveChecks())
-    return 0;
 
   // Start tracking after we see the first state in which the value is null.
   if (!IsTrackingTurnedOn)
@@ -734,13 +730,17 @@ SuppressInlineDefensiveChecksVisitor::VisitNode(const ExplodedNode *Succ,
   if (!IsTrackingTurnedOn)
     return 0;
 
+  AnalyzerOptions &Options =
+  BRC.getBugReporter().getEngine().getAnalysisManager().options;
+  if (!Options.shouldSuppressInlinedDefensiveChecks())
+    return 0;
 
   // Check if in the previous state it was feasible for this value
   // to *not* be null.
-  if (Pred->getState()->assume(V, true)) {
+  if (!Pred->getState()->isNull(V).isConstrainedTrue()) {
     IsSatisfied = true;
 
-    assert(!Succ->getState()->assume(V, true));
+    assert(Succ->getState()->isNull(V).isConstrainedTrue());
 
     // Check if this is inlined defensive checks.
     const LocationContext *CurLC =Succ->getLocationContext();