]> granicus.if.org Git - clang/commitdiff
[analyzer] BasicConstraintManager: drop NE-constraints once we have a value.
authorJordy Rose <jediknil@belkadan.com>
Tue, 8 May 2012 03:27:20 +0000 (03:27 +0000)
committerJordy Rose <jediknil@belkadan.com>
Tue, 8 May 2012 03:27:20 +0000 (03:27 +0000)
This could conceivably cut down on state proliferation, although we don't
use BasicConstraintManager by default anymore. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156362 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/BasicConstraintManager.cpp

index 7a095d57d27e0fb1068b61a13f1e0b3b9563ddf4..8897756a92d9e7620ab9380a46f70b60aaa7f7af 100644 (file)
@@ -333,7 +333,9 @@ BasicConstraintManager::assumeSymLE(ProgramStateRef state,
 ProgramStateRef BasicConstraintManager::AddEQ(ProgramStateRef state,
                                                   SymbolRef sym,
                                              const llvm::APSInt& V) {
-  // Create a new state with the old binding replaced.
+  // Now that we have an actual value, we can throw out the NE-set.
+  // Create a new state with the old bindings replaced.
+  state = state->remove<ConstNotEq>(sym);
   return state->set<ConstEq>(sym, &getBasicVals().getValue(V));
 }