aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Analysis/PathSensitive/SymbolManager.h6
-rw-r--r--lib/Analysis/MemRegion.cpp3
-rw-r--r--lib/Analysis/SymbolManager.cpp5
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) ||