Fix a backwards compatibility bug found by Tanya. In version 1.2, the
authorReid Spencer <rspencer@reidspencer.com>
Fri, 9 Jul 2004 21:13:53 +0000 (21:13 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Fri, 9 Jul 2004 21:13:53 +0000 (21:13 +0000)
global type plane starts with a length and the TypeTyID value to identify
the type plane has having type definitions. This doesn't happen in 1.3
because the types are read from a known position in the file. However, the
TypeTyID must be read in (and ignored) if its a 1.2 bytecode file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14728 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bytecode/Reader/Reader.cpp

index 14f6c9f7e27bff969567bf05a869c8c3aa6eb712..1b11f22e5cff5156764691270308b9f71f6887dd 100644 (file)
@@ -1641,6 +1641,11 @@ void BytecodeReader::ParseAllFunctionBodies() {
 void BytecodeReader::ParseGlobalTypes() {
   // Read the number of types
   unsigned NumEntries = read_vbr_uint();
+
+  // Ignore the type plane identifier for types if the bc file is pre 1.3
+  if (hasTypeDerivedFromValue)
+    read_vbr_uint();
+
   ParseTypeConstants(ModuleTypes, NumEntries);
 }