Packed Structures


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32361 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index 3cc3b1d..2ac92bc 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -1192,7 +1192,18 @@
       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: {