Add SymbolRef::print() and have SymbolicRegion::print() use this method instead of calling SymbolRef::getNumber().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60578 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Analysis/PathSensitive/SymbolManager.h b/include/clang/Analysis/PathSensitive/SymbolManager.h
index 9d495be..887e3d9 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 @@
   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 99dc796..6aff286 100644
--- a/lib/Analysis/MemRegion.cpp
+++ b/lib/Analysis/MemRegion.cpp
@@ -149,7 +149,8 @@
 }
 
 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 0132029..1c2814a 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) ||