aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/RangeConstraintManager.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-02-16 18:42:56 +0000
committerTed Kremenek <kremenek@apple.com>2009-02-16 18:42:56 +0000
commitdd28d00a2f5cc10b0ccf3705adcf4d8a62ecc8aa (patch)
tree24ce6d1caedc3c5134b3b9f8a4d2b7cb2bd57a43 /lib/Analysis/RangeConstraintManager.cpp
parent7eba82e4be8f437120d9089f4424e2f516c6e060 (diff)
Add pretty-printing (for GraphViz) support for RangeConstraintManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64646 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/RangeConstraintManager.cpp')
-rw-r--r--lib/Analysis/RangeConstraintManager.cpp44
1 files changed, 8 insertions, 36 deletions
diff --git a/lib/Analysis/RangeConstraintManager.cpp b/lib/Analysis/RangeConstraintManager.cpp
index e405ab1344..8eb7e69aad 100644
--- a/lib/Analysis/RangeConstraintManager.cpp
+++ b/lib/Analysis/RangeConstraintManager.cpp
@@ -675,44 +675,16 @@ RangeConstraintManager::RemoveDeadBindings(const GRState* St,
void RangeConstraintManager::print(const GRState* St, std::ostream& Out,
const char* nl, const char *sep) {
-#if 0
- // Print equality constraints.
-
- ConstEqTy CE = St->get<ConstEq>();
-
- if (!CE.isEmpty()) {
- Out << nl << sep << "'==' constraints:";
-
- for (ConstEqTy::iterator I = CE.begin(), E = CE.end(); I!=E; ++I) {
- Out << nl << " $" << I.getKey();
- llvm::raw_os_ostream OS(Out);
- OS << " : " << *I.getData();
- }
- }
-
- // Print != constraints.
- ConstNotEqTy CNE = St->get<ConstNotEq>();
+ ConstRangeTy Ranges = St->get<ConstRange>();
- if (!CNE.isEmpty()) {
- Out << nl << sep << "'!=' constraints:";
+ if (Ranges.isEmpty())
+ return;
- for (ConstNotEqTy::iterator I = CNE.begin(), EI = CNE.end(); I!=EI; ++I) {
- Out << nl << " $" << I.getKey() << " : ";
- bool isFirst = true;
-
- GRState::IntSetTy::iterator J = I.getData().begin(),
- EJ = I.getData().end();
-
- for ( ; J != EJ; ++J) {
- if (isFirst) isFirst = false;
- else Out << ", ";
-
- Out << (*J)->getSExtValue(); // Hack: should print to raw_ostream.
- }
- }
+ Out << nl << sep << "ranges of symbol values:";
+
+ for (ConstRangeTy::iterator I=Ranges.begin(), E=Ranges.end(); I!=E; ++I) {
+ Out << nl << " $" << I.getKey() << " : ";
+ I.getData().Print(Out);
}
-#endif // 0
-
- Out << nl << "Implement range printing";
}