asmprinter support for BlockAddress.
authorChris Lattner <sabre@nondot.org>
Wed, 28 Oct 2009 03:38:12 +0000 (03:38 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 28 Oct 2009 03:38:12 +0000 (03:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85367 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/AsmWriter.cpp

index 296cc25617ebdf5de0305d5211fea10c2bc2b2af..2a25841b39e5c2a869cd5ca37f0c99c39b2317d8 100644 (file)
@@ -1060,6 +1060,15 @@ static void WriteConstantInt(raw_ostream &Out, const Constant *CV,
     Out << "zeroinitializer";
     return;
   }
+  
+  if (const BlockAddress *BA = dyn_cast<BlockAddress>(CV)) {
+    Out << "blockaddress(";
+    WriteAsOperandInternal(Out, BA->getFunction(), &TypePrinter, Machine);
+    Out << ", ";
+    WriteAsOperandInternal(Out, BA->getBasicBlock(), &TypePrinter, Machine);
+    Out << ")";
+    return;
+  }
 
   if (const ConstantArray *CA = dyn_cast<ConstantArray>(CV)) {
     // As a special case, print the array as a string if it is an array of