diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-08-19 22:24:03 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-08-19 22:24:03 +0000 |
commit | a622d8c2719e927b47f48dbebcece770e752dfb8 (patch) | |
tree | 5acc0bc1b88bb90500750dd7450abb227c994a4c /lib/Analysis/BasicStore.cpp | |
parent | caa3724b1d525a888982f94a6ae2b527eb3bca7d (diff) |
Move store pretty-printing logic inside of StoreManager (previously in GRState).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55013 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/BasicStore.cpp')
-rw-r--r-- | lib/Analysis/BasicStore.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp index 15284567e6..24ec7f0e38 100644 --- a/lib/Analysis/BasicStore.cpp +++ b/lib/Analysis/BasicStore.cpp @@ -16,6 +16,7 @@ #include "clang/Analysis/PathSensitive/GRState.h" #include "llvm/ADT/ImmutableMap.h" #include "llvm/Support/Compiler.h" +#include "llvm/Support/Streams.h" using namespace clang; @@ -42,7 +43,10 @@ public: static inline VarBindingsTy GetVarBindings(Store store) { return VarBindingsTy(static_cast<const VarBindingsTy::TreeTy*>(store)); - } + } + + virtual void print(Store store, std::ostream& Out, + const char* nl, const char *sep); }; } // end anonymous namespace @@ -234,3 +238,20 @@ Store BasicStoreManager::getInitialStore(GRStateManager& StateMgr) { } return St; } + +void BasicStoreManager::print(Store store, std::ostream& Out, + const char* nl, const char *sep) { + + VarBindingsTy B = GetVarBindings(store); + Out << "Variables:" << nl; + + bool isFirst = true; + + for (VarBindingsTy::iterator I=B.begin(), E=B.end(); I != E; ++I) { + if (isFirst) isFirst = false; + else Out << nl; + + Out << ' ' << I.getKey()->getName() << " : "; + I.getData().print(Out); + } +} |