aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/VMCore/AsmWriter.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp
index d8a1394497..4ba1662143 100644
--- a/lib/VMCore/AsmWriter.cpp
+++ b/lib/VMCore/AsmWriter.cpp
@@ -872,6 +872,13 @@ void Instruction::print(std::ostream &o) const {
void Constant::print(std::ostream &o) const {
if (this == 0) { o << "<null> constant value\n"; return; }
+
+ // Handle CPR's special, because they have context information...
+ if (const ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(this)) {
+ CPR->getValue()->print(o); // Print as a global value, with context info.
+ return;
+ }
+
o << " " << getType()->getDescription() << " ";
map<const Type *, string> TypeTable;