diff options
-rw-r--r-- | include/clang/Analysis/PathSensitive/SymbolManager.h | 6 | ||||
-rw-r--r-- | lib/Analysis/MemRegion.cpp | 3 | ||||
-rw-r--r-- | lib/Analysis/SymbolManager.cpp | 5 |
3 files changed, 13 insertions, 1 deletions
diff --git a/include/clang/Analysis/PathSensitive/SymbolManager.h b/include/clang/Analysis/PathSensitive/SymbolManager.h index 9d495bee5f..887e3d9f9c 100644 --- a/include/clang/Analysis/PathSensitive/SymbolManager.h +++ b/include/clang/Analysis/PathSensitive/SymbolManager.h @@ -22,6 +22,10 @@ #include "llvm/Support/DataTypes.h" #include "llvm/Support/Allocator.h" +namespace llvm { + class raw_ostream; +} + namespace clang { class MemRegion; @@ -37,6 +41,8 @@ public: operator unsigned() const { return getNumber(); } unsigned getNumber() const { assert (isInitialized()); return Data; } + void print(llvm::raw_ostream& os) const; + void Profile(llvm::FoldingSetNodeID& ID) const { assert (isInitialized()); ID.AddInteger(Data); diff --git a/lib/Analysis/MemRegion.cpp b/lib/Analysis/MemRegion.cpp index 99dc796213..6aff286dc1 100644 --- a/lib/Analysis/MemRegion.cpp +++ b/lib/Analysis/MemRegion.cpp @@ -149,7 +149,8 @@ void VarRegion::print(llvm::raw_ostream& os) const { } void SymbolicRegion::print(llvm::raw_ostream& os) const { - os << "$" << sym.getNumber(); + os << "SymRegion-"; + sym.print(os); } void FieldRegion::print(llvm::raw_ostream& os) const { diff --git a/lib/Analysis/SymbolManager.cpp b/lib/Analysis/SymbolManager.cpp index 013202990a..1c2814a3af 100644 --- a/lib/Analysis/SymbolManager.cpp +++ b/lib/Analysis/SymbolManager.cpp @@ -13,9 +13,14 @@ //===----------------------------------------------------------------------===// #include "clang/Analysis/PathSensitive/SymbolManager.h" +#include "llvm/Support/raw_ostream.h" using namespace clang; +void SymbolRef::print(llvm::raw_ostream& os) const { + os << getNumber(); +} + SymbolRef SymbolManager::getSymbol(VarDecl* D) { assert (isa<ParmVarDecl>(D) || isa<ImplicitParamDecl>(D) || |