From 9bb660c3f49d1747c1958d0b1be1896b091b7f9e Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 21 Apr 2009 19:56:58 +0000 Subject: [PATCH] Recommit 69694 but this time also include the header changes (sorry for breaking the build). llvm-svn: 69702 --- clang/include/clang/Analysis/PathSensitive/MemRegion.h | 9 ++++++++- clang/lib/Analysis/MemRegion.cpp | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Analysis/PathSensitive/MemRegion.h b/clang/include/clang/Analysis/PathSensitive/MemRegion.h index 3f287a0eb05a..7397c9213804 100644 --- a/clang/include/clang/Analysis/PathSensitive/MemRegion.h +++ b/clang/include/clang/Analysis/PathSensitive/MemRegion.h @@ -223,7 +223,14 @@ public: return static_cast(Data); } - virtual bool isBoundable(ASTContext&) const { return false; } + SymbolRef getSymbol() const { + assert(codekind == Symbolic); + return const_cast(static_cast(Data)); + } + + bool isBoundable(ASTContext&) const { return false; } + + virtual void print(llvm::raw_ostream& os) const; void Profile(llvm::FoldingSetNodeID& ID) const; diff --git a/clang/lib/Analysis/MemRegion.cpp b/clang/lib/Analysis/MemRegion.cpp index 5e71924bf9ce..ad7e80d7249c 100644 --- a/clang/lib/Analysis/MemRegion.cpp +++ b/clang/lib/Analysis/MemRegion.cpp @@ -157,6 +157,16 @@ void AllocaRegion::print(llvm::raw_ostream& os) const { os << "alloca{" << (void*) Ex << ',' << Cnt << '}'; } +void CodeTextRegion::print(llvm::raw_ostream& os) const { + os << "code{"; + if (isDeclared()) + os << getDecl()->getDeclName(); + else + os << '$' << getSymbol(); + + os << '}'; +} + void CompoundLiteralRegion::print(llvm::raw_ostream& os) const { // FIXME: More elaborate pretty-printing. os << "{ " << (void*) CL << " }";