summaryrefslogtreecommitdiff
path: root/clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp
diff options
context:
space:
mode:
authorZancanaro; Carlo <czan8762@plang3.cs.usyd.edu.au>2012-10-15 17:08:15 +1100
committerZancanaro; Carlo <czan8762@plang3.cs.usyd.edu.au>2012-10-15 17:08:15 +1100
commitf1bd2e48c5324d3f7cda4090c87f8a5b6f463ce2 (patch)
tree55170bf41e2efaa272ea23b0bf9be5f056ded63f /clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp
parent684045e9e843ed9b8be30728482ce3d69d63b527 (diff)
Fix up the Equation System generation. Now there's a bug in the solver.
The solver seems to work fine when run as a tool by itself, but not in the clang stuff. Very annoying.
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp b/clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp
index 9d04720..dc2f0d9 100644
--- a/clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp
+++ b/clang/lib/StaticAnalyzer/Core/IntervalConstraintManager.cpp
@@ -254,6 +254,7 @@ private:
ConstraintManager* ento::CreateIntervalConstraintManager(ProgramStateManager&,
SubEngine &subeng) {
+ llvm::errs() << "Creating interval constraint manager\n";
return new IntervalConstraintManager(subeng);
}
@@ -294,7 +295,7 @@ IntervalConstraintManager::GetRange(ProgramStateRef state, SymbolRef sym) {
}
//===------------------------------------------------------------------------===
-// assumeSymX methods: public interface for IntervalConstraintManager.
+// eSymX methods: public interface for IntervalConstraintManager.
//===------------------------------------------------------------------------===/
// The syntax for ranges below is mathematical, using [x, y] for closed ranges
@@ -309,6 +310,10 @@ ProgramStateRef
IntervalConstraintManager::assumeSymNE(ProgramStateRef state, SymbolRef sym,
const llvm::APSInt& Int,
const llvm::APSInt& Adjustment) {
+ llvm::errs() << "AssumeNE\n";
+ state->dump();
+ sym->dump();
+
BasicValueFactory &BV = state->getBasicVals();
llvm::APSInt Lower = Int-Adjustment;
@@ -326,6 +331,10 @@ ProgramStateRef
IntervalConstraintManager::assumeSymEQ(ProgramStateRef state, SymbolRef sym,
const llvm::APSInt& Int,
const llvm::APSInt& Adjustment) {
+ llvm::errs() << "AssumeEQ\n";
+ state->dump();
+ sym->dump();
+
// [Int-Adjustment, Int-Adjustment]
BasicValueFactory &BV = state->getBasicVals();
llvm::APSInt AdjInt = Int-Adjustment;
@@ -337,6 +346,10 @@ ProgramStateRef
IntervalConstraintManager::assumeSymLT(ProgramStateRef state, SymbolRef sym,
const llvm::APSInt& Int,
const llvm::APSInt& Adjustment) {
+ llvm::errs() << "AssumeLT\n";
+ state->dump();
+ sym->dump();
+
BasicValueFactory &BV = state->getBasicVals();
QualType T = state->getSymbolManager().getType(sym);
@@ -358,6 +371,10 @@ ProgramStateRef
IntervalConstraintManager::assumeSymGT(ProgramStateRef state, SymbolRef sym,
const llvm::APSInt& Int,
const llvm::APSInt& Adjustment) {
+ llvm::errs() << "AssumeGT\n";
+ state->dump();
+ sym->dump();
+
BasicValueFactory &BV = state->getBasicVals();
QualType T = state->getSymbolManager().getType(sym);
@@ -379,6 +396,10 @@ ProgramStateRef
IntervalConstraintManager::assumeSymGE(ProgramStateRef state, SymbolRef sym,
const llvm::APSInt& Int,
const llvm::APSInt& Adjustment) {
+ llvm::errs() << "AssumeGE\n";
+ state->dump();
+ sym->dump();
+
BasicValueFactory &BV = state->getBasicVals();
QualType T = state->getSymbolManager().getType(sym);
@@ -401,6 +422,10 @@ ProgramStateRef
IntervalConstraintManager::assumeSymLE(ProgramStateRef state, SymbolRef sym,
const llvm::APSInt& Int,
const llvm::APSInt& Adjustment) {
+ llvm::errs() << "AssumeLE\n";
+ state->dump();
+ sym->dump();
+
BasicValueFactory &BV = state->getBasicVals();
QualType T = state->getSymbolManager().getType(sym);