aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp
diff options
context:
space:
mode:
authorJordy Rose <jediknil@belkadan.com>2012-05-08 03:27:20 +0000
committerJordy Rose <jediknil@belkadan.com>2012-05-08 03:27:20 +0000
commit2cbc12fa24482889159926aab79e361ebe2e7f91 (patch)
treeff5b7905dab57ef281ebf0ec4222d474f916a128 /lib/StaticAnalyzer/Core/BasicConstraintManager.cpp
parent1d8db493f86761df9470254a2ad572fc6abf1bf6 (diff)
[analyzer] BasicConstraintManager: drop NE-constraints once we have a value.
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
Diffstat (limited to 'lib/StaticAnalyzer/Core/BasicConstraintManager.cpp')
-rw-r--r--lib/StaticAnalyzer/Core/BasicConstraintManager.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp b/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp
index 7a095d57d2..8897756a92 100644
--- a/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp
+++ b/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp
@@ -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));
}