aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-16 21:21:35 +0000
committerChris Lattner <sabre@nondot.org>2010-03-16 21:21:35 +0000
commit47353244e3f1387db893f9892dac34a74a975470 (patch)
treecada0d3eb1512a6e7baae9a6ce4321019138d98e
parent2aa0da2d8ec527695e826a57bdda33f1b3ea4756 (diff)
downloadexternal_llvm-47353244e3f1387db893f9892dac34a74a975470.zip
external_llvm-47353244e3f1387db893f9892dac34a74a975470.tar.gz
external_llvm-47353244e3f1387db893f9892dac34a74a975470.tar.bz2
add asmprinter suport for unions, fixing Feature/unions.ll to actually
be doing something useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98677 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/AsmWriter.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp
index fd74241..0eb9f02 100644
--- a/lib/VMCore/AsmWriter.cpp
+++ b/lib/VMCore/AsmWriter.cpp
@@ -1027,6 +1027,15 @@ static void WriteConstantInt(raw_ostream &Out, const Constant *CV,
return;
}
+ if (const ConstantUnion *CU = dyn_cast<ConstantUnion>(CV)) {
+ Out << "{ ";
+ TypePrinter.print(CU->getOperand(0)->getType(), Out);
+ Out << ' ';
+ WriteAsOperandInternal(Out, CU->getOperand(0), &TypePrinter, Machine);
+ Out << " }";
+ return;
+ }
+
if (const ConstantVector *CP = dyn_cast<ConstantVector>(CV)) {
const Type *ETy = CP->getType()->getElementType();
assert(CP->getNumOperands() > 0 &&