Lines Matching full:record

414   /// the middle of the metadata block and load any record.
424 /// Index that keeps track of where to find a metadata record in the stream.
473 Error parseOneMetadata(SmallVectorImpl<uint64_t> &Record, unsigned Code,
476 Error parseMetadataStrings(ArrayRef<uint64_t> Record, StringRef Blob,
479 ArrayRef<uint64_t> Record);
480 Error parseMetadataKindRecord(SmallVectorImpl<uint64_t> &Record);
639 return error("Invalid record");
774 SmallVector<uint64_t, 64> Record;
776 // Get the abbrevs, and preload record positions to make them lazy-loadable.
793 case BitstreamEntry::Record: {
806 Record.clear();
808 IndexCursor.readRecord(Entry.ID, Record, &Blob))
812 unsigned NumStrings = Record[0];
817 if (auto Err = parseMetadataStrings(Record, Blob, IndexNextMDString))
826 Record.clear();
828 IndexCursor.readRecord(Entry.ID, Record))
832 if (Record.size() != 2)
833 return error("Invalid record");
834 auto Offset = Record[0] + (Record[1] << 32);
844 assert(Entry.Kind == BitstreamEntry::Record &&
845 "Corrupted bitcode: Expected `Record` when trying to find the "
847 Record.clear();
849 IndexCursor.readRecord(Entry.ID, Record))
857 GlobalMetadataBitPosIndex.reserve(Record.size());
858 for (auto &Elt : Record) {
872 Record.clear();
876 IndexCursor.readRecord(Entry.ID, Record)) {
883 SmallString<8> Name(Record.begin(), Record.end());
891 Record.clear();
893 IndexCursor.readRecord(Code, Record))
899 unsigned Size = Record.size();
906 MDNode *MD = MetadataList.getMDNodeFwdRefOrNull(Record[i]);
981 SmallVector<uint64_t, 64> Record;
983 // scan for the first BitstreamEntry record.
1002 case BitstreamEntry::Record:
1022 Record.clear();
1024 TempCursor.readRecord(Entry.ID, Record))
1028 if (Record.size() % 2 == 0)
1029 return error("Invalid record");
1030 unsigned ValueID = Record[0];
1032 return error("Invalid record");
1039 *GO, ArrayRef<uint64_t>(Record).slice(1)))
1061 // Record the entry position so that we can jump back here and efficiently
1068 SmallVector<uint64_t, 64> Record;
1071 // We lazy-load module-level metadata: we build an index for each record, and
1072 // then load individual record as needed, starting with the named metadata.
1128 case BitstreamEntry::Record:
1133 // Read a record.
1134 Record.clear();
1138 Stream.readRecord(Entry.ID, Record, &Blob)) {
1139 if (Error Err = parseOneMetadata(Record, MaybeCode.get(), Placeholders,
1166 SmallVector<uint64_t, 64> Record;
1179 IndexCursor.readRecord(Entry.ID, Record, &Blob)) {
1181 parseOneMetadata(Record, MaybeCode.get(), Placeholders, Blob, ID))
1244 SmallVectorImpl<uint64_t> &Record, unsigned Code,
1301 SmallString<8> Name(Record.begin(), Record.end());
1302 Record.clear();
1307 if (Expected<unsigned> MaybeNextBitCode = Stream.readRecord(Code, Record)) {
1314 unsigned Size = Record.size();
1317 MDNode *MD = MetadataList.getMDNodeFwdRefOrNull(Record[i]);
1326 // This is a LocalAsMetadata record, the only type of function-local
1328 if (Record.size() % 2 == 1)
1329 return error("Invalid record");
1331 // If this isn't a LocalAsMetadata record, we're dropping it. This used
1337 if (Record.size() != 2) {
1342 unsigned TyID = Record[0];
1349 Value *V = ValueList.getValueFwdRef(Record[1], Ty, TyID,
1360 if (Record.size() % 2 == 1)
1361 return error("Invalid record");
1363 unsigned Size = Record.size();
1366 unsigned TyID = Record[i];
1369 return error("Invalid record");
1371 Elts.push_back(getMD(Record[i + 1]));
1373 Value *V = getValueFwdRef(ValueList, Record[i + 1], Ty, TyID);
1389 if (Record.size() != 2)
1390 return error("Invalid record");
1392 unsigned TyID = Record[0];
1395 return error("Invalid record");
1397 Value *V = getValueFwdRef(ValueList, Record[1], Ty, TyID);
1412 Elts.reserve(Record.size());
1413 for (unsigned ID : Record)
1422 if (Record.size() != 5 && Record.size() != 6)
1423 return error("Invalid record");
1425 IsDistinct = Record[0];
1426 unsigned Line = Record[1];
1427 unsigned Column = Record[2];
1428 Metadata *Scope = getMD(Record[3]);
1429 Metadata *InlinedAt = getMDOrNull(Record[4]);
1430 bool ImplicitCode = Record.size() == 6 && Record[5];
1439 if (Record.size() < 4)
1440 return error("Invalid record");
1442 IsDistinct = Record[0];
1443 unsigned Tag = Record[1];
1444 unsigned Version = Record[2];
1447 return error("Invalid record");
1449 auto *Header = getMDString(Record[3]);
1451 for (unsigned I = 4, E = Record.size(); I != E; ++I)
1452 DwarfOps.push_back(getMDOrNull(Record[I]));
1469 switch (Record[0] >> 1) {
1472 (Context, Record[1], unrotateSign(Record[2])));
1475 Val = GET_OR_DISTINCT(DISubrange, (Context, getMDOrNull(Record[1]),
1476 unrotateSign(Record[2])));
1480 DISubrange, (Context, getMDOrNull(Record[1]), getMDOrNull(Record[2]),
1481 getMDOrNull(Record[3]), getMDOrNull(Record[4])));
1484 return error("Invalid record: Unsupported version of DISubrange");
1488 IsDistinct = Record[0] & 1;
1495 (Context, getMDOrNull(Record[1]),
1496 getMDOrNull(Record[2]), getMDOrNull(Record[3]),
1497 getMDOrNull(Record[4])));
1500 IsDistinct = Record[0] & 1;
1505 if (Record.size() < 3)
1506 return error("Invalid record");
1508 IsDistinct = Record[0] & 1;
1509 bool IsUnsigned = Record[0] & 2;
1510 bool IsBigInt = Record[0] & 4;
1514 const uint64_t BitWidth = Record[1];
1515 const size_t NumWords = Record.size() - 3;
1516 Value = readWideAPInt(ArrayRef(&Record[3], NumWords), BitWidth);
1518 Value = APInt(64, unrotateSign(Record[1]), !IsUnsigned);
1522 (Context, Value, IsUnsigned, getMDString(Record[2]))),
1528 if (Record.size() < 6 || Record.size() > 8)
1529 return error("Invalid record");
1531 IsDistinct = Record[0];
1532 DINode::DIFlags Flags = (Record.size() > 6)
1533 ? static_cast<DINode::DIFlags>(Record[6])
1535 uint32_t NumExtraInhabitants = (Record.size() > 7) ? Record[7] : 0;
1539 (Context, Record[1], getMDString(Record[2]), Record[3],
1540 Record[4], Record[5], NumExtraInhabitants, Flags)),
1546 if (Record.size() > 9 || Record.size() < 8)
1547 return error("Invalid record");
1549 IsDistinct = Record[0];
1550 bool SizeIs8 = Record.size() == 8;
1551 // StringLocationExp (i.e. Record[5]) is added at a later time
1553 Metadata *StringLocationExp = SizeIs8 ? nullptr : getMDOrNull(Record[5]);
1557 (Context, Record[1], getMDString(Record[2]),
1558 getMDOrNull(Record[3]), getMDOrNull(Record[4]),
1559 StringLocationExp, Record[Offset], Record[Offset + 1],
1560 Record[Offset + 2])),
1566 if (Record.size() < 12 || Record.size() > 15)
1567 return error("Invalid record");
1572 if (Record.size() > 12 && Record[12])
1573 DWARFAddressSpace = Record[12] - 1;
1580 // and annotations have been expected at Record[13] at various times.
1581 if (Record.size() > 14) {
1582 if (Record[13])
1583 Annotations = getMDOrNull(Record[13]);
1584 if (Record[14])
1585 PtrAuthData.emplace(Record[14]);
1588 IsDistinct = Record[0];
1589 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[10]);
1592 (Context, Record[1], getMDString(Record[2]),
1593 getMDOrNull(Record[3]), Record[4],
1594 getDITypeRefOrNull(Record[5]),
1595 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1596 Record[9], DWARFAddressSpace, PtrAuthData, Flags,
1597 getDITypeRefOrNull(Record[11]), Annotations)),
1603 if (Record.size() < 16 || Record.size() > 24)
1604 return error("Invalid record");
1608 IsDistinct = Record[0] & 0x1;
1609 bool IsNotUsedInTypeRef = Record[0] >= 2;
1610 unsigned Tag = Record[1];
1611 MDString *Name = getMDString(Record[2]);
1612 Metadata *File = getMDOrNull(Record[3]);
1613 unsigned Line = Record[4];
1614 Metadata *Scope = getDITypeRefOrNull(Record[5]);
1616 uint64_t SizeInBits = Record[7];
1617 if (Record[8] > (uint64_t)std::numeric_limits<uint32_t>::max())
1619 uint32_t AlignInBits = Record[8];
1621 uint32_t NumExtraInhabitants = (Record.size() > 22) ? Record[22] : 0;
1622 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[10]);
1624 unsigned RuntimeLang = Record[12];
1634 auto *Identifier = getMDString(Record[15]);
1661 TemplateParams = getMDOrNull(Record[14]);
1663 BaseType = getDITypeRefOrNull(Record[6]);
1664 OffsetInBits = Record[9];
1665 Elements = getMDOrNull(Record[11]);
1666 VTableHolder = getDITypeRefOrNull(Record[13]);
1667 TemplateParams = getMDOrNull(Record[14]);
1668 if (Record.size() > 16)
1669 Discriminator = getMDOrNull(Record[16]);
1670 if (Record.size() > 17)
1671 DataLocation = getMDOrNull(Record[17]);
1672 if (Record.size() > 19) {
1673 Associated = getMDOrNull(Record[18]);
1674 Allocated = getMDOrNull(Record[19]);
1676 if (Record.size() > 20) {
1677 Rank = getMDOrNull(Record[20]);
1679 if (Record.size() > 21) {
1680 Annotations = getMDOrNull(Record[21]);
1682 if (Record.size() > 23) {
1683 Specification = getMDOrNull(Record[23]);
1712 if (Record.size() < 3 || Record.size() > 4)
1713 return error("Invalid record");
1714 bool IsOldTypeRefArray = Record[0] < 2;
1715 unsigned CC = (Record.size() > 3) ? Record[3] : 0;
1717 IsDistinct = Record[0] & 0x1;
1718 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[1]);
1719 Metadata *Types = getMDOrNull(Record[2]);
1731 if (Record.size() < 5 || Record.size() > 9)
1732 return error("Invalid record");
1734 unsigned Offset = Record.size() >= 8 ? 2 : 1;
1735 IsDistinct = Record[0];
1739 (Context, Record.size() >= 8 ? getMDOrNull(Record[1]) : nullptr,
1740 getMDOrNull(Record[0 + Offset]), getMDString(Record[1 + Offset]),
1741 getMDString(Record[2 + Offset]), getMDString(Record[3 + Offset]),
1742 getMDString(Record[4 + Offset]),
1743 Record.size() <= 7 ? 0 : Record[7],
1744 Record.size() <= 8 ? false : Record[8])),
1751 if (Record.size() != 3 && Record.size() != 5 && Record.size() != 6)
1752 return error("Invalid record");
1754 IsDistinct = Record[0];
1756 // The BitcodeWriter writes null bytes into Record[3:4] when the Checksum
1761 if (Record.size() > 4 && Record[3] && Record[4])
1762 Checksum.emplace(static_cast<DIFile::ChecksumKind>(Record[3]),
1763 getMDString(Record[4]));
1766 (Context, getMDString(Record[1]),
1767 getMDString(Record[2]), Checksum,
1768 Record.size() > 5 ? getMDString(Record[5]) : nullptr)),
1774 if (Record.size() < 14 || Record.size() > 22)
1775 return error("Invalid record");
1777 // Ignore Record[0], which indicates whether this compile unit is
1781 Context, Record[1], getMDOrNull(Record[2]), getMDString(Record[3]),
1782 Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]),
1783 Record[8], getMDOrNull(Record[9]), getMDOrNull(Record[10]),
1784 getMDOrNull(Record[12]), getMDOrNull(Record[13]),
1785 Record.size() <= 15 ? nullptr : getMDOrNull(Record[15]),
1786 Record.size() <= 14 ? 0 : Record[14],
1787 Record.size() <= 16 ? true : Record[16],
1788 Record.size() <= 17 ? false : Record[17],
1789 Record.size() <= 18 ? 0 : Record[18],
1790 Record.size() <= 19 ? false : Record[19],
1791 Record.size() <= 20 ? nullptr : getMDString(Record[20]),
1792 Record.size() <= 21 ? nullptr : getMDString(Record[21]));
1798 if (Metadata *SPs = getMDOrNullWithoutPlaceholders(Record[11]))
1803 if (Record.size() < 18 || Record.size() > 21)
1804 return error("Invalid record");
1806 bool HasSPFlags = Record[0] & 4;
1811 Flags = static_cast<DINode::DIFlags>(Record[11 + 2]);
1813 Flags = static_cast<DINode::DIFlags>(Record[11]);
1814 SPFlags = static_cast<DISubprogram::DISPFlags>(Record[9]);
1831 /*IsLocalToUnit=*/Record[7], /*IsDefinition=*/Record[8],
1832 /*IsOptimized=*/Record[14], /*Virtuality=*/Record[11],
1836 IsDistinct = (Record[0] & 1) || (SPFlags & DISubprogram::SPFlagDefinition);
1837 // Version 1 has a Function as Record[15].
1838 // Version 2 has removed Record[15].
1839 // Version 3 has the Unit as Record[15].
1842 bool HasUnit = Record[0] & 2;
1843 if (!HasSPFlags && HasUnit && Record.size() < 19)
1844 return error("Invalid record");
1846 return error("Invalid record");
1858 if (Record.size() >= 19) {
1862 HasThisAdj = Record.size() >= 20;
1863 HasThrownTypes = Record.size() >= 21;
1865 HasAnnotations = Record.size() >= 19;
1866 HasTargetFuncName = Record.size() >= 20;
1868 Metadata *CUorFn = getMDOrNull(Record[12 + OffsetB]);
1872 getDITypeRefOrNull(Record[1]), // scope
1873 getMDString(Record[2]), // name
1874 getMDString(Record[3]), // linkageName
1875 getMDOrNull(Record[4]), // file
1876 Record[5], // line
1877 getMDOrNull(Record[6]), // type
1878 Record[7 + OffsetA], // scopeLine
1879 getDITypeRefOrNull(Record[8 + OffsetA]), // containingType
1880 Record[10 + OffsetA], // virtualIndex
1881 HasThisAdj ? Record[16 + OffsetB] : 0, // thisAdjustment
1885 getMDOrNull(Record[13 + OffsetB]), // templateParams
1886 getMDOrNull(Record[14 + OffsetB]), // declaration
1887 getMDOrNull(Record[15 + OffsetB]), // retainedNodes
1888 HasThrownTypes ? getMDOrNull(Record[17 + OffsetB])
1890 HasAnnotations ? getMDOrNull(Record[18 + OffsetB])
1892 HasTargetFuncName ? getMDString(Record[19 + OffsetB])
1913 if (Record.size() != 5)
1914 return error("Invalid record");
1916 IsDistinct = Record[0];
1919 (Context, getMDOrNull(Record[1]),
1920 getMDOrNull(Record[2]), Record[3], Record[4])),
1926 if (Record.size() != 4)
1927 return error("Invalid record");
1929 IsDistinct = Record[0];
1932 (Context, getMDOrNull(Record[1]),
1933 getMDOrNull(Record[2]), Record[3])),
1939 IsDistinct = Record[0] & 1;
1942 (Context, getMDOrNull(Record[1]),
1943 getMDOrNull(Record[2]), getMDString(Record[3]),
1944 getMDOrNull(Record[4]), Record[5])),
1952 if (Record.size() == 3)
1953 Name = getMDString(Record[2]);
1954 else if (Record.size() == 5)
1955 Name = getMDString(Record[3]);
1957 return error("Invalid record");
1959 IsDistinct = Record[0] & 1;
1960 bool ExportSymbols = Record[0] & 2;
1963 (Context, getMDOrNull(Record[1]), Name, ExportSymbols)),
1969 if (Record.size() != 5)
1970 return error("Invalid record");
1972 IsDistinct = Record[0];
1975 (Context, Record[1], Record[2], getMDString(Record[3]),
1976 getMDString(Record[4]))),
1982 if (Record.size() != 5)
1983 return error("Invalid record");
1985 IsDistinct = Record[0];
1988 (Context, Record[1], Record[2], getMDOrNull(Record[3]),
1989 getMDOrNull(Record[4]))),
1995 if (Record.size() < 3 || Record.size() > 4)
1996 return error("Invalid record");
1998 IsDistinct = Record[0];
2001 (Context, getMDString(Record[1]),
2002 getDITypeRefOrNull(Record[2]),
2003 (Record.size() == 4) ? getMDOrNull(Record[3])
2010 if (Record.size() < 5 || Record.size() > 6)
2011 return error("Invalid record");
2013 IsDistinct = Record[0];
2018 (Context, Record[1], getMDString(Record[2]),
2019 getDITypeRefOrNull(Record[3]),
2020 (Record.size() == 6) ? getMDOrNull(Record[4]) : getMDOrNull(false),
2021 (Record.size() == 6) ? getMDOrNull(Record[5])
2022 : getMDOrNull(Record[4]))),
2028 if (Record.size() < 11 || Record.size() > 13)
2029 return error("Invalid record");
2031 IsDistinct = Record[0] & 1;
2032 unsigned Version = Record[0] >> 1;
2036 if (Record.size() > 12)
2037 Annotations = getMDOrNull(Record[12]);
2041 (Context, getMDOrNull(Record[1]),
2042 getMDString(Record[2]), getMDString(Record[3]),
2043 getMDOrNull(Record[4]), Record[5],
2044 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
2045 getMDOrNull(Record[9]), getMDOrNull(Record[10]),
2046 Record[11], Annotations)),
2056 (Context, getMDOrNull(Record[1]), getMDString(Record[2]),
2057 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
2058 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
2059 getMDOrNull(Record[10]), nullptr, Record[11], nullptr)),
2067 Metadata *Expr = getMDOrNull(Record[9]);
2069 if (Record.size() > 11) {
2070 if (Record[11] > (uint64_t)std::numeric_limits<uint32_t>::max())
2072 AlignInBits = Record[11];
2089 (Context, getMDOrNull(Record[1]), getMDString(Record[2]),
2090 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
2091 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
2092 getMDOrNull(Record[10]), nullptr, AlignInBits, nullptr));
2105 return error("Invalid record");
2110 if (Record.size() != 1)
2111 return error("Invalid DIAssignID record.");
2113 IsDistinct = Record[0] & 1;
2115 return error("Invalid DIAssignID record. Must be distinct");
2123 if (Record.size() < 8 || Record.size() > 10)
2124 return error("Invalid record");
2126 IsDistinct = Record[0] & 1;
2127 bool HasAlignment = Record[0] & 2;
2130 // this is newer version of record which doesn't have artificial tag.
2131 bool HasTag = !HasAlignment && Record.size() > 8;
2132 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[7 + HasTag]);
2136 if (Record[8] > (uint64_t)std::numeric_limits<uint32_t>::max())
2138 AlignInBits = Record[8];
2139 if (Record.size() > 9)
2140 Annotations = getMDOrNull(Record[9]);
2145 (Context, getMDOrNull(Record[1 + HasTag]),
2146 getMDString(Record[2 + HasTag]),
2147 getMDOrNull(Record[3 + HasTag]), Record[4 + HasTag],
2148 getDITypeRefOrNull(Record[5 + HasTag]),
2149 Record[6 + HasTag], Flags, AlignInBits, Annotations)),
2155 if (Record.size() != 5)
2156 return error("Invalid record");
2158 IsDistinct = Record[0] & 1;
2160 GET_OR_DISTINCT(DILabel, (Context, getMDOrNull(Record[1]),
2161 getMDString(Record[2]),
2162 getMDOrNull(Record[3]), Record[4])),
2168 if (Record.size() < 1)
2169 return error("Invalid record");
2171 IsDistinct = Record[0] & 1;
2172 uint64_t Version = Record[0] >> 1;
2173 auto Elts = MutableArrayRef<uint64_t>(Record).slice(1);
2185 if (Record.size() != 3)
2186 return error("Invalid record");
2188 IsDistinct = Record[0];
2189 Metadata *Expr = getMDOrNull(Record[2]);
2194 (Context, getMDOrNull(Record[1]), Expr)),
2200 if (Record.size() != 8)
2201 return error("Invalid record");
2203 IsDistinct = Record[0];
2206 (Context, getMDString(Record[1]),
2207 getMDOrNull(Record[2]), Record[3],
2208 getMDString(Record[4]), getMDString(Record[5]),
2209 Record[6], getDITypeRefOrNull(Record[7]))),
2215 if (Record.size() < 6 || Record.size() > 8)
2216 return error("Invalid DIImportedEntity record");
2218 IsDistinct = Record[0];
2219 bool HasFile = (Record.size() >= 7);
2220 bool HasElements = (Record.size() >= 8);
2223 (Context, Record[1], getMDOrNull(Record[2]),
2224 getDITypeRefOrNull(Record[3]),
2225 HasFile ? getMDOrNull(Record[6]) : nullptr,
2226 HasFile ? Record[4] : 0, getMDString(Record[5]),
2227 HasElements ? getMDOrNull(Record[7]) : nullptr)),
2233 std::string String(Record.begin(), Record.end());
2249 if (Error Err = parseMetadataStrings(Record, Blob, CreateNextMDString))
2254 if (Record.size() % 2 == 0)
2255 return error("Invalid record");
2256 unsigned ValueID = Record[0];
2258 return error("Invalid record");
2261 *GO, ArrayRef<uint64_t>(Record).slice(1)))
2268 if (Error Err = parseMetadataKindRecord(Record))
2274 Elts.reserve(Record.size());
2275 for (uint64_t Elt : Record) {
2279 "Invalid record: DIArgList should not contain forward refs");
2281 return error("Invalid record");
2295 ArrayRef<uint64_t> Record, StringRef Blob,
2298 // record. The strings are concatenated and stored in a blob along with
2300 if (Record.size() != 2)
2301 return error("Invalid record: metadata strings layout");
2303 unsigned NumStrings = Record[0];
2304 unsigned StringsOffset = Record[1];
2306 return error("Invalid record: metadata strings with no strings");
2308 return error("Invalid record: metadata strings corrupt offset");
2316 return error("Invalid record: metadata strings bad length");
2322 return error("Invalid record: metadata strings truncated chars");
2332 GlobalObject &GO, ArrayRef<uint64_t> Record) {
2333 assert(Record.size() % 2 == 0);
2334 for (unsigned I = 0, E = Record.size(); I != E; I += 2) {
2335 auto K = MDKindMap.find(Record[I]);
2339 dyn_cast_or_null<MDNode>(getMetadataFwdRefOrLoad(Record[I + 1]));
2353 SmallVector<uint64_t, 64> Record;
2368 case BitstreamEntry::Record:
2373 // Read a metadata attachment record.
2374 Record.clear();
2376 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record);
2383 unsigned RecordLength = Record.size();
2384 if (Record.empty())
2385 return error("Invalid record");
2388 if (Error Err = parseGlobalObjectAttachment(F, Record))
2394 Instruction *Inst = InstructionList[Record[0]];
2396 unsigned Kind = Record[i];
2403 auto Idx = Record[i + 1];
2436 /// Parse a single METADATA_KIND record, inserting result in MDKindMap.
2438 SmallVectorImpl<uint64_t> &Record) {
2439 if (Record.size() < 2)
2440 return error("Invalid record");
2442 unsigned Kind = Record[0];
2443 SmallString<8> Name(Record.begin() + 1, Record.end());
2456 SmallVector<uint64_t, 64> Record;
2470 case BitstreamEntry::Record:
2475 // Read a record.
2476 Record.clear();
2478 Expected<unsigned> MaybeCode = Stream.readRecord(Entry.ID, Record);
2485 if (Error Err = parseMetadataKindRecord(Record))