diff options
Diffstat (limited to 'lib/Bytecode/Reader/Reader.cpp')
-rw-r--r-- | lib/Bytecode/Reader/Reader.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp index 3cc3b1d362..2ac92bc946 100644 --- a/lib/Bytecode/Reader/Reader.cpp +++ b/lib/Bytecode/Reader/Reader.cpp @@ -1192,7 +1192,18 @@ const Type *BytecodeReader::ParseType() { Typ = read_vbr_uint(); } - Result = StructType::get(Elements); + Result = StructType::get(Elements, false); + break; + } + case Type::BC_ONLY_PackedStructTyID: { + std::vector<const Type*> Elements; + unsigned Typ = read_vbr_uint(); + while (Typ) { // List is terminated by void/0 typeid + Elements.push_back(getType(Typ)); + Typ = read_vbr_uint(); + } + + Result = StructType::get(Elements, true); break; } case Type::PointerTyID: { |