Skip to content

Commit 6000670

Browse files
authored
Merge pull request #7684 from drodriguez/fix-metadata-loader
Fix MetadataLoader treatment of NumExtraInhabitants.
2 parents 3b64a8d + dc75586 commit 6000670

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

llvm/lib/Bitcode/Reader/MetadataLoader.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -1508,11 +1508,12 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
15081508
DINode::DIFlags Flags = (Record.size() > 6)
15091509
? static_cast<DINode::DIFlags>(Record[6])
15101510
: DINode::FlagZero;
1511+
uint32_t NumExtraInhabitants = (Record.size() > 7) ? Record[7] : 0;
15111512

15121513
MetadataList.assignValue(
15131514
GET_OR_DISTINCT(DIBasicType,
15141515
(Context, Record[1], getMDString(Record[2]), Record[3],
1515-
Record[4], Record[5], Record[7], Flags)),
1516+
Record[4], Record[5], NumExtraInhabitants, Flags)),
15161517
NextMetadataNo);
15171518
NextMetadataNo++;
15181519
break;
@@ -1588,7 +1589,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
15881589
return error("Alignment value is too large");
15891590
uint32_t AlignInBits = Record[8];
15901591
uint64_t OffsetInBits = 0;
1591-
uint32_t NumExtraInhabitants = Record[22];
1592+
uint32_t NumExtraInhabitants = (Record.size() > 22) ? Record[22] : 0;
15921593
DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[10]);
15931594
Metadata *Elements = nullptr;
15941595
unsigned RuntimeLang = Record[12];

0 commit comments

Comments
 (0)