#include "llvm/Support/DataTypes.h"
#include "llvm/Support/Allocator.h"
+namespace llvm {
+ class raw_ostream;
+}
+
namespace clang {
class MemRegion;
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);
}
void SymbolicRegion::print(llvm::raw_ostream& os) const {
- os << "$" << sym.getNumber();
+ os << "SymRegion-";
+ sym.print(os);
}
void FieldRegion::print(llvm::raw_ostream& os) const {
//===----------------------------------------------------------------------===//
#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) ||