From 392be58cad0f051b4e7e252b44cef14b547f9b81 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 12 Feb 2010 20:49:41 +0000 Subject: Add support for a union type in LLVM IR. Patch by Talin! llvm-svn: 96011 --- llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp') diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 4dfc6cef5ad..a0402caa905 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -585,6 +585,13 @@ bool BitcodeReader::ParseTypeTable() { ResultTy = StructType::get(Context, EltTys, Record[0]); break; } + case bitc::TYPE_CODE_UNION: { // UNION: [eltty x N] + SmallVector EltTys; + for (unsigned i = 0, e = Record.size(); i != e; ++i) + EltTys.push_back(getTypeByID(Record[i], true)); + ResultTy = UnionType::get(&EltTys[0], EltTys.size()); + break; + } case bitc::TYPE_CODE_ARRAY: // ARRAY: [numelts, eltty] if (Record.size() < 2) return Error("Invalid ARRAY type record"); -- cgit v1.2.3