diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-02-16 18:42:56 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-02-16 18:42:56 +0000 |
commit | dd28d00a2f5cc10b0ccf3705adcf4d8a62ecc8aa (patch) | |
tree | 24ce6d1caedc3c5134b3b9f8a4d2b7cb2bd57a43 /lib/Analysis/RangeConstraintManager.cpp | |
parent | 7eba82e4be8f437120d9089f4424e2f516c6e060 (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.cpp | 44 |
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"; } |