Lines Matching full:record
564 // Detailed record is important since it is used for the module cache hash. in checkPreprocessorOptions()
986 RecordData Record; in ReadLexicalDeclContextStorage() local
989 unsigned RecCode = Cursor.readRecord(Code, Record, &Blob); in ReadLexicalDeclContextStorage()
996 "expected a TU_UPDATE_LEXICAL record for TU"); in ReadLexicalDeclContextStorage()
998 // lexical updates for the same record. It's important that we select only one in ReadLexicalDeclContextStorage()
1022 RecordData Record; in ReadVisibleDeclContextStorage() local
1025 unsigned RecCode = Cursor.readRecord(Code, Record, &Blob); in ReadVisibleDeclContextStorage()
1062 const RecordData &Record) { in ParseLineTable() argument
1068 for (unsigned I = 0; Record[Idx]; ++I) { in ParseLineTable()
1070 auto Filename = ReadPath(F, Record, Idx); in ParseLineTable()
1077 while (Idx < Record.size()) { in ParseLineTable()
1078 int FID = Record[Idx++]; in ParseLineTable()
1084 unsigned NumEntries = Record[Idx++]; in ParseLineTable()
1089 unsigned FileOffset = Record[Idx++]; in ParseLineTable()
1090 unsigned LineNo = Record[Idx++]; in ParseLineTable()
1091 int FilenameID = FileIDs[Record[Idx++]]; in ParseLineTable()
1093 = (SrcMgr::CharacteristicKind)Record[Idx++]; in ParseLineTable()
1094 unsigned IncludeOffset = Record[Idx++]; in ParseLineTable()
1118 Error("malformed block record in AST file"); in ReadSourceManagerBlock()
1124 Error("malformed source manager block record in AST file"); in ReadSourceManagerBlock()
1128 RecordData Record; in ReadSourceManagerBlock() local
1135 Error("malformed block record in AST file"); in ReadSourceManagerBlock()
1139 case llvm::BitstreamEntry::Record: in ReadSourceManagerBlock()
1144 // Read a record. in ReadSourceManagerBlock()
1145 Record.clear(); in ReadSourceManagerBlock()
1147 switch (SLocEntryCursor.readRecord(E.ID, Record, &Blob)) { in ReadSourceManagerBlock()
1209 if (Entry.Kind != llvm::BitstreamEntry::Record) { in ReadSLocEntry()
1214 RecordData Record; in ReadSLocEntry() local
1216 switch (SLocEntryCursor.readRecord(Entry.ID, Record, &Blob)) { in ReadSLocEntry()
1224 unsigned InputID = Record[4]; in ReadSLocEntry()
1235 SourceLocation IncludeLoc = ReadSourceLocation(*F, Record[1]); in ReadSLocEntry()
1241 FileCharacter = (SrcMgr::CharacteristicKind)Record[2]; in ReadSLocEntry()
1243 ID, BaseOffset + Record[0]); in ReadSLocEntry()
1246 FileInfo.NumCreatedFIDs = Record[5]; in ReadSLocEntry()
1247 if (Record[3]) in ReadSLocEntry()
1250 const DeclID *FirstDecl = F->FileSortedDecls + Record[6]; in ReadSLocEntry()
1251 unsigned NumFileDecls = Record[7]; in ReadSLocEntry()
1265 Record.clear(); in ReadSLocEntry()
1266 unsigned RecCode = SLocEntryCursor.readRecord(Code, Record, &Blob); in ReadSLocEntry()
1269 Error("AST record has invalid code"); in ReadSLocEntry()
1283 unsigned Offset = Record[0]; in ReadSLocEntry()
1285 FileCharacter = (SrcMgr::CharacteristicKind)Record[2]; in ReadSLocEntry()
1286 SourceLocation IncludeLoc = ReadSourceLocation(*F, Record[1]); in ReadSLocEntry()
1292 Record.clear(); in ReadSLocEntry()
1294 = SLocEntryCursor.readRecord(Code, Record, &Blob); in ReadSLocEntry()
1297 Error("AST record has invalid code"); in ReadSLocEntry()
1309 SourceLocation SpellingLoc = ReadSourceLocation(*F, Record[1]); in ReadSLocEntry()
1311 ReadSourceLocation(*F, Record[2]), in ReadSLocEntry()
1312 ReadSourceLocation(*F, Record[3]), in ReadSLocEntry()
1313 Record[4], in ReadSLocEntry()
1315 BaseOffset + Record[0]); in ReadSLocEntry()
1377 Token ASTReader::ReadToken(ModuleFile &F, const RecordDataImpl &Record, in ReadToken() argument
1381 Tok.setLocation(ReadSourceLocation(F, Record, Idx)); in ReadToken()
1382 Tok.setLength(Record[Idx++]); in ReadToken()
1383 if (IdentifierInfo *II = getLocalIdentifier(F, Record[Idx++])) in ReadToken()
1385 Tok.setKind((tok::TokenKind)Record[Idx++]); in ReadToken()
1386 Tok.setFlag((Token::TokenFlags)Record[Idx++]); in ReadToken()
1398 RecordData Record; in ReadMacroRecord() local
1403 // Advance to the next record, but if we get to the end of the block, don't in ReadMacroRecord()
1412 Error("malformed block record in AST file"); in ReadMacroRecord()
1416 case llvm::BitstreamEntry::Record: in ReadMacroRecord()
1421 // Read a record. in ReadMacroRecord()
1422 Record.clear(); in ReadMacroRecord()
1424 (PreprocessorRecordTypes)Stream.readRecord(Entry.ID, Record); in ReadMacroRecord()
1439 SubmoduleID SubModID = getGlobalSubmoduleID(F, Record[NextIndex++]); in ReadMacroRecord()
1440 SourceLocation Loc = ReadSourceLocation(F, Record, NextIndex); in ReadMacroRecord()
1442 MI->setDefinitionEndLoc(ReadSourceLocation(F, Record, NextIndex)); in ReadMacroRecord()
1443 MI->setIsUsed(Record[NextIndex++]); in ReadMacroRecord()
1444 MI->setUsedForHeaderGuard(Record[NextIndex++]); in ReadMacroRecord()
1448 bool isC99VarArgs = Record[NextIndex++]; in ReadMacroRecord()
1449 bool isGNUVarArgs = Record[NextIndex++]; in ReadMacroRecord()
1450 bool hasCommaPasting = Record[NextIndex++]; in ReadMacroRecord()
1452 unsigned NumArgs = Record[NextIndex++]; in ReadMacroRecord()
1454 MacroArgs.push_back(getLocalIdentifier(F, Record[NextIndex++])); in ReadMacroRecord()
1468 if (NextIndex + 1 == Record.size() && PP.getPreprocessingRecord() && in ReadMacroRecord()
1469 Record[NextIndex]) { in ReadMacroRecord()
1472 GlobalID = getGlobalPreprocessedEntityID(F, Record[NextIndex]); in ReadMacroRecord()
1492 Token Tok = ReadToken(F, Record, Idx); in ReadMacroRecord()
1644 RecordData Record; in ReadDefinedMacros() local
1651 Error("malformed block record in AST file"); in ReadDefinedMacros()
1656 case llvm::BitstreamEntry::Record: in ReadDefinedMacros()
1657 Record.clear(); in ReadDefinedMacros()
1658 switch (Cursor.readRecord(E.ID, Record)) { in ReadDefinedMacros()
1664 getLocalIdentifier(*I, Record[0]); in ReadDefinedMacros()
1784 // macros, followed by a PP_MACRO_DIRECTIVE_HISTORY record with the complete in resolvePendingMacro()
1786 RecordData Record; in resolvePendingMacro() local
1790 if (Entry.Kind != llvm::BitstreamEntry::Record) { in resolvePendingMacro()
1791 Error("malformed block record in AST file"); in resolvePendingMacro()
1795 Record.clear(); in resolvePendingMacro()
1796 switch ((PreprocessorRecordTypes)Cursor.readRecord(Entry.ID, Record)) { in resolvePendingMacro()
1803 Info.SubModID = getGlobalSubmoduleID(M, Record[0]); in resolvePendingMacro()
1804 Info.MI = getMacro(getGlobalMacroID(M, Record[1])); in resolvePendingMacro()
1805 for (int I = 2, N = Record.size(); I != N; ++I) in resolvePendingMacro()
1806 Info.Overrides.push_back(getGlobalSubmoduleID(M, Record[I])); in resolvePendingMacro()
1811 Error("malformed block record in AST file"); in resolvePendingMacro()
1815 // We found the macro directive history; that's the last record in resolvePendingMacro()
1846 unsigned Idx = 0, N = Record.size(); in resolvePendingMacro()
1849 SourceLocation Loc = ReadSourceLocation(M, Record, Idx); in resolvePendingMacro()
1850 MacroDirective::Kind K = (MacroDirective::Kind)Record[Idx++]; in resolvePendingMacro()
1853 MacroInfo *MI = getMacro(getGlobalMacroID(M, Record[Idx++])); in resolvePendingMacro()
1862 bool isPublic = Record[Idx++]; in resolvePendingMacro()
1886 RecordData Record; in readInputFileInfo() local
1889 unsigned Result = Cursor.readRecord(Code, Record, &Blob); in readInputFileInfo()
1891 "invalid record type for input file"); in readInputFileInfo()
1894 assert(Record[0] == ID && "Bogus stored ID or offset"); in readInputFileInfo()
1896 R.StoredSize = static_cast<off_t>(Record[1]); in readInputFileInfo()
1897 R.StoredTime = static_cast<time_t>(Record[2]); in readInputFileInfo()
1898 R.Overridden = static_cast<bool>(Record[3]); in readInputFileInfo()
1899 R.Transient = static_cast<bool>(Record[4]); in readInputFileInfo()
1956 // Record that we didn't find the file. in getInputFile()
2078 RecordData Record; in ReadOptionsBlock() local
2091 case llvm::BitstreamEntry::Record: in ReadOptionsBlock()
2096 // Read and process a record. in ReadOptionsBlock()
2097 Record.clear(); in ReadOptionsBlock()
2098 switch ((OptionsRecordTypes)Stream.readRecord(Entry.ID, Record)) { in ReadOptionsBlock()
2101 if (ParseLanguageOptions(Record, Complain, Listener, in ReadOptionsBlock()
2109 if (ParseTargetOptions(Record, Complain, Listener, in ReadOptionsBlock()
2118 ParseDiagnosticOptions(Record, Complain, Listener)) in ReadOptionsBlock()
2126 ParseFileSystemOptions(Record, Complain, Listener)) in ReadOptionsBlock()
2134 ParseHeaderSearchOptions(Record, Complain, Listener)) in ReadOptionsBlock()
2142 ParsePreprocessorOptions(Record, Complain, Listener, in ReadOptionsBlock()
2159 Error("malformed block record in AST file"); in ReadControlBlock()
2164 RecordData Record; in ReadControlBlock() local
2172 Error("malformed block record in AST file"); in ReadControlBlock()
2227 Error("malformed block record in AST file"); in ReadControlBlock()
2249 Error("malformed block record in AST file"); in ReadControlBlock()
2262 Error("malformed block record in AST file"); in ReadControlBlock()
2269 Error("malformed block record in AST file"); in ReadControlBlock()
2275 case llvm::BitstreamEntry::Record: in ReadControlBlock()
2280 // Read and process a record. in ReadControlBlock()
2281 Record.clear(); in ReadControlBlock()
2283 switch ((ControlRecordTypes)Stream.readRecord(Entry.ID, Record, &Blob)) { in ReadControlBlock()
2285 if (Record[0] != VERSION_MAJOR && !DisableValidation) { in ReadControlBlock()
2287 Diag(Record[0] < VERSION_MAJOR? diag::err_pch_version_too_old in ReadControlBlock()
2292 bool hasErrors = Record[6]; in ReadControlBlock()
2298 F.RelocatablePCH = Record[4]; in ReadControlBlock()
2303 F.HasTimestamps = Record[5]; in ReadControlBlock()
2316 assert((!F.Signature || F.Signature == Record[0]) && "signature changed"); in ReadControlBlock()
2317 F.Signature = Record[0]; in ReadControlBlock()
2322 unsigned Idx = 0, N = Record.size(); in ReadControlBlock()
2325 ModuleKind ImportedKind = (ModuleKind)Record[Idx++]; in ReadControlBlock()
2330 SourceLocation::getFromRawEncoding(Record[Idx++]); in ReadControlBlock()
2331 off_t StoredSize = (off_t)Record[Idx++]; in ReadControlBlock()
2332 time_t StoredModTime = (time_t)Record[Idx++]; in ReadControlBlock()
2333 ASTFileSignature StoredSignature = Record[Idx++]; in ReadControlBlock()
2334 auto ImportedFile = ReadPath(F, Record, Idx); in ReadControlBlock()
2367 F.OriginalSourceFileID = FileID::get(Record[0]); in ReadControlBlock()
2374 F.OriginalSourceFileID = FileID::get(Record[0]); in ReadControlBlock()
2415 ReadModuleMapFileBlock(Record, F, ImportedBy, ClientLoadCapabilities)) in ReadControlBlock()
2420 NumInputs = Record[0]; in ReadControlBlock()
2421 NumUserInputs = Record[1]; in ReadControlBlock()
2435 Error("malformed block record in AST file"); in ReadASTBlock()
2440 RecordData Record; in ReadASTBlock() local
2472 Error("malformed block record in AST file"); in ReadASTBlock()
2484 Error("malformed block record in AST file"); in ReadASTBlock()
2495 Error("malformed preprocessor detail record in AST file"); in ReadASTBlock()
2530 Error("malformed block record in AST file"); in ReadASTBlock()
2537 case llvm::BitstreamEntry::Record: in ReadASTBlock()
2542 // Read and process a record. in ReadASTBlock()
2543 Record.clear(); in ReadASTBlock()
2545 switch ((ASTRecordTypes)Stream.readRecord(Entry.ID, Record, &Blob)) { in ReadASTBlock()
2551 Error("duplicate TYPE_OFFSET record in AST file"); in ReadASTBlock()
2555 F.LocalNumTypes = Record[0]; in ReadASTBlock()
2556 unsigned LocalBaseTypeIndex = Record[1]; in ReadASTBlock()
2575 Error("duplicate DECL_OFFSET record in AST file"); in ReadASTBlock()
2579 F.LocalNumDecls = Record[0]; in ReadASTBlock()
2580 unsigned LocalBaseDeclID = Record[1]; in ReadASTBlock()
2616 serialization::DeclID ID = ReadDeclID(F, Record, Idx); in ReadASTBlock()
2628 if (Record[0]) { in ReadASTBlock()
2630 (const unsigned char *)F.IdentifierTableData + Record[0], in ReadASTBlock()
2641 Error("duplicate IDENTIFIER_OFFSET record in AST file"); in ReadASTBlock()
2645 F.LocalNumIdentifiers = Record[0]; in ReadASTBlock()
2646 unsigned LocalBaseIdentifierID = Record[1]; in ReadASTBlock()
2668 F.PreloadIdentifierOffsets.assign(Record.begin(), Record.end()); in ReadASTBlock()
2672 // FIXME: Skip reading this record if our ASTConsumer doesn't care in ReadASTBlock()
2674 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
2675 EagerlyDeserializedDecls.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
2680 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
2681 SpecialTypes.push_back(getGlobalTypeID(F, Record[I])); in ReadASTBlock()
2685 if (SpecialTypes.size() != Record.size()) { in ReadASTBlock()
2686 Error("invalid special-types record"); in ReadASTBlock()
2690 for (unsigned I = 0, N = Record.size(); I != N; ++I) { in ReadASTBlock()
2691 serialization::TypeID ID = getGlobalTypeID(F, Record[I]); in ReadASTBlock()
2700 TotalNumStatements += Record[0]; in ReadASTBlock()
2701 TotalNumMacros += Record[1]; in ReadASTBlock()
2702 TotalLexicalDeclContexts += Record[2]; in ReadASTBlock()
2703 TotalVisibleDeclContexts += Record[3]; in ReadASTBlock()
2707 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
2708 UnusedFileScopedDecls.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
2712 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
2713 DelegatingCtorDecls.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
2717 if (Record.size() % 4 != 0) { in ReadASTBlock()
2718 Error("invalid weak identifiers record"); in ReadASTBlock()
2727 for (unsigned I = 0, N = Record.size(); I < N; /* in loop */) { in ReadASTBlock()
2729 getGlobalIdentifierID(F, Record[I++])); in ReadASTBlock()
2731 getGlobalIdentifierID(F, Record[I++])); in ReadASTBlock()
2733 ReadSourceLocation(F, Record, I).getRawEncoding()); in ReadASTBlock()
2734 WeakUndeclaredIdentifiers.push_back(Record[I++]); in ReadASTBlock()
2740 F.LocalNumSelectors = Record[0]; in ReadASTBlock()
2741 unsigned LocalBaseSelectorID = Record[1]; in ReadASTBlock()
2762 if (Record[0]) in ReadASTBlock()
2765 F.SelectorLookupTableData + Record[0], in ReadASTBlock()
2768 TotalNumMethodPoolEntries += Record[1]; in ReadASTBlock()
2772 if (!Record.empty()) { in ReadASTBlock()
2773 for (unsigned Idx = 0, N = Record.size() - 1; Idx < N; /* in loop */) { in ReadASTBlock()
2775 Record[Idx++])); in ReadASTBlock()
2776 ReferencedSelectorsData.push_back(ReadSourceLocation(F, Record, Idx). in ReadASTBlock()
2783 if (!Record.empty() && Listener) in ReadASTBlock()
2784 Listener->ReadCounter(F, Record[0]); in ReadASTBlock()
2789 F.NumFileSortedDecls = Record[0]; in ReadASTBlock()
2794 F.LocalNumSLocEntries = Record[0]; in ReadASTBlock()
2795 unsigned SLocSpaceSize = Record[1]; in ReadASTBlock()
2904 if (ParseLineTable(F, Record)) in ReadASTBlock()
2916 F.PreloadSLocEntries.swap(Record); in ReadASTBlock()
2921 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
2922 ExtVectorDecls.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
2926 if (Record.size() % 3 != 0) { in ReadASTBlock()
2927 Error("Invalid VTABLE_USES record"); in ReadASTBlock()
2936 for (unsigned Idx = 0, N = Record.size(); Idx != N; /* In loop */) { in ReadASTBlock()
2937 VTableUses.push_back(getGlobalDeclID(F, Record[Idx++])); in ReadASTBlock()
2939 ReadSourceLocation(F, Record, Idx).getRawEncoding()); in ReadASTBlock()
2940 VTableUses.push_back(Record[Idx++]); in ReadASTBlock()
2950 if (Record.size() % 2 != 0) { in ReadASTBlock()
2955 for (unsigned I = 0, N = Record.size(); I != N; /* in loop */) { in ReadASTBlock()
2956 PendingInstantiations.push_back(getGlobalDeclID(F, Record[I++])); in ReadASTBlock()
2958 ReadSourceLocation(F, Record, I).getRawEncoding()); in ReadASTBlock()
2963 if (Record.size() != 2) { in ReadASTBlock()
2967 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
2968 SemaDeclRefs.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
2976 unsigned LocalBasePreprocessedEntityID = Record[0]; in ReadASTBlock()
3004 if (Record.size() % 2 != 0) { in ReadASTBlock()
3008 for (unsigned I = 0, N = Record.size(); I != N; I += 2) { in ReadASTBlock()
3009 GlobalDeclID ID = getGlobalDeclID(F, Record[I]); in ReadASTBlock()
3010 DeclUpdateOffsets[ID].push_back(std::make_pair(&F, Record[I + 1])); in ReadASTBlock()
3021 if (Record.size() % 3 != 0) { in ReadASTBlock()
3025 for (unsigned I = 0, N = Record.size(); I != N; I += 3) in ReadASTBlock()
3026 ReplacedDecls[getGlobalDeclID(F, Record[I])] in ReadASTBlock()
3027 = ReplacedDeclInfo(&F, Record[I+1], Record[I+2]); in ReadASTBlock()
3033 Error("duplicate OBJC_CATEGORIES_MAP record in AST file"); in ReadASTBlock()
3037 F.LocalNumObjCCategoriesInMap = Record[0]; in ReadASTBlock()
3043 F.ObjCCategories.swap(Record); in ReadASTBlock()
3048 Error("duplicate CXX_BASE_SPECIFIER_OFFSETS record in AST file"); in ReadASTBlock()
3052 F.LocalNumCXXBaseSpecifiers = Record[0]; in ReadASTBlock()
3059 Error("duplicate CXX_CTOR_INITIALIZERS_OFFSETS record in AST file"); in ReadASTBlock()
3063 F.LocalNumCXXCtorInitializers = Record[0]; in ReadASTBlock()
3070 F.PragmaDiagMappings.swap(Record); in ReadASTBlock()
3073 Record.begin(), Record.end()); in ReadASTBlock()
3080 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
3081 CUDASpecialDeclRefs.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
3086 F.LocalNumHeaderFileInfos = Record[1]; in ReadASTBlock()
3087 if (Record[0]) { in ReadASTBlock()
3090 (const unsigned char *)F.HeaderFileInfoTableData + Record[0], in ReadASTBlock()
3094 Blob.data() + Record[2])); in ReadASTBlock()
3105 FPPragmaOptions.swap(Record); in ReadASTBlock()
3110 OpenCLExtensions.swap(Record); in ReadASTBlock()
3114 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
3115 TentativeDefinitions.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
3119 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
3120 KnownNamespaces.push_back(getGlobalDeclID(F, Record[I])); in ReadASTBlock()
3129 if (Record.size() % 2 != 0) { in ReadASTBlock()
3130 Error("invalid undefined-but-used record"); in ReadASTBlock()
3133 for (unsigned I = 0, N = Record.size(); I != N; /* in loop */) { in ReadASTBlock()
3134 UndefinedButUsed.push_back(getGlobalDeclID(F, Record[I++])); in ReadASTBlock()
3136 ReadSourceLocation(F, Record, I).getRawEncoding()); in ReadASTBlock()
3140 for (unsigned I = 0, N = Record.size(); I != N;) { in ReadASTBlock()
3141 DelayedDeleteExprs.push_back(getGlobalDeclID(F, Record[I++])); in ReadASTBlock()
3142 const uint64_t Count = Record[I++]; in ReadASTBlock()
3145 DelayedDeleteExprs.push_back(ReadSourceLocation(F, Record, I).getRawEncoding()); in ReadASTBlock()
3146 bool IsArrayForm = Record[I++] == 1; in ReadASTBlock()
3157 for (unsigned I = 0, N = Record.size(); I != N; /**/) { in ReadASTBlock()
3158 unsigned GlobalID = getGlobalSubmoduleID(F, Record[I++]); in ReadASTBlock()
3159 SourceLocation Loc = ReadSourceLocation(F, Record, I); in ReadASTBlock()
3169 Error("duplicate MACRO_OFFSET record in AST file"); in ReadASTBlock()
3173 F.LocalNumMacros = Record[0]; in ReadASTBlock()
3174 unsigned LocalBaseMacroID = Record[1]; in ReadASTBlock()
3192 LateParsedTemplates.append(Record.begin(), Record.end()); in ReadASTBlock()
3197 if (Record.size() != 1) { in ReadASTBlock()
3198 Error("invalid pragma optimize record"); in ReadASTBlock()
3201 OptimizeOffPragmaLocation = ReadSourceLocation(F, Record[0]); in ReadASTBlock()
3205 for (unsigned I = 0, N = Record.size(); I != N; ++I) in ReadASTBlock()
3207 getGlobalDeclID(F, Record[I])); in ReadASTBlock()
3214 ASTReader::ReadModuleMapFileBlock(RecordData &Record, ModuleFile &F, in ReadModuleMapFileBlock() argument
3218 F.ModuleMapPath = ReadPath(F, Record, Idx); in ReadModuleMapFileBlock()
3270 for (unsigned I = 0, N = Record[Idx++]; I < N; ++I) { in ReadModuleMapFileBlock()
3272 std::string Filename = ReadPath(F, Record, Idx); in ReadModuleMapFileBlock()
3451 case llvm::BitstreamEntry::Record: in SkipCursorToBlock()
3796 case llvm::BitstreamEntry::Record: in ReadASTCore()
3798 Error("invalid record at top-level of AST file"); in ReadASTCore()
3840 // Record that we've loaded this module. in ReadASTCore()
3846 Error("malformed block record in AST file"); in ReadASTCore()
3856 /// Parse a record and blob containing module file extension metadata.
3858 const SmallVectorImpl<uint64_t> &Record, in parseModuleFileExtensionMetadata() argument
3861 if (Record.size() < 4) return true; in parseModuleFileExtensionMetadata()
3863 Metadata.MajorVersion = Record[0]; in parseModuleFileExtensionMetadata()
3864 Metadata.MinorVersion = Record[1]; in parseModuleFileExtensionMetadata()
3866 unsigned BlockNameLen = Record[2]; in parseModuleFileExtensionMetadata()
3867 unsigned UserInfoLen = Record[3]; in parseModuleFileExtensionMetadata()
3880 RecordData Record; in ReadExtensionBlock() local
3896 case llvm::BitstreamEntry::Record: in ReadExtensionBlock()
3900 Record.clear(); in ReadExtensionBlock()
3902 unsigned RecCode = Stream.readRecord(Entry.ID, Record, &Blob); in ReadExtensionBlock()
3906 if (parseModuleFileExtensionMetadata(Record, Blob, Metadata)) in ReadExtensionBlock()
4065 /// \brief Reads and return the signature record from \p StreamFile's control
4077 ASTReader::RecordData Record; in readASTFileSignature() local
4081 Entry.Kind != llvm::BitstreamEntry::Record) in readASTFileSignature()
4084 Record.clear(); in readASTFileSignature()
4086 if (SIGNATURE == Stream.readRecord(Entry.ID, Record, &Blob)) in readASTFileSignature()
4087 return Record[0]; in readASTFileSignature()
4123 RecordData Record; in getOriginalSourceFile() local
4129 if (Entry.Kind != llvm::BitstreamEntry::Record) { in getOriginalSourceFile()
4134 Record.clear(); in getOriginalSourceFile()
4136 if (Stream.readRecord(Entry.ID, Record, &Blob) == ORIGINAL_FILE) in getOriginalSourceFile()
4220 RecordData Record; in readASTFileControlBlock() local
4262 case llvm::BitstreamEntry::Record: in readASTFileControlBlock()
4268 Record.clear(); in readASTFileControlBlock()
4270 unsigned RecCode = Stream.readRecord(Entry.ID, Record, &Blob); in readASTFileControlBlock()
4273 if (Record[0] != VERSION_MAJOR) in readASTFileControlBlock()
4289 auto Path = ReadString(Record, Idx); in readASTFileControlBlock()
4298 unsigned NumInputFiles = Record[0]; in readASTFileControlBlock()
4299 unsigned NumUserFiles = Record[1]; in readASTFileControlBlock()
4313 RecordData Record; in readASTFileControlBlock() local
4316 switch ((InputFileRecordTypes)Cursor.readRecord(Code, Record, &Blob)) { in readASTFileControlBlock()
4318 bool Overridden = static_cast<bool>(Record[3]); in readASTFileControlBlock()
4335 unsigned Idx = 0, N = Record.size(); in readASTFileControlBlock()
4339 std::string Filename = ReadString(Record, Idx); in readASTFileControlBlock()
4373 case llvm::BitstreamEntry::Record: in readASTFileControlBlock()
4377 Record.clear(); in readASTFileControlBlock()
4379 unsigned RecCode = Stream.readRecord(Entry.ID, Record, &Blob); in readASTFileControlBlock()
4383 if (parseModuleFileExtensionMetadata(Record, Blob, Metadata)) in readASTFileControlBlock()
4413 Error("malformed submodule block record in AST file"); in ReadSubmoduleBlock()
4420 RecordData Record; in ReadSubmoduleBlock() local
4427 Error("malformed block record in AST file"); in ReadSubmoduleBlock()
4431 case llvm::BitstreamEntry::Record: in ReadSubmoduleBlock()
4436 // Read a record. in ReadSubmoduleBlock()
4438 Record.clear(); in ReadSubmoduleBlock()
4439 auto Kind = F.Stream.readRecord(Entry.ID, Record, &Blob); in ReadSubmoduleBlock()
4442 Error("submodule metadata record should be at beginning of block"); in ReadSubmoduleBlock()
4458 if (Record.size() < 8) { in ReadSubmoduleBlock()
4465 SubmoduleID GlobalID = getGlobalSubmoduleID(F, Record[Idx++]); in ReadSubmoduleBlock()
4466 SubmoduleID Parent = getGlobalSubmoduleID(F, Record[Idx++]); in ReadSubmoduleBlock()
4467 bool IsFramework = Record[Idx++]; in ReadSubmoduleBlock()
4468 bool IsExplicit = Record[Idx++]; in ReadSubmoduleBlock()
4469 bool IsSystem = Record[Idx++]; in ReadSubmoduleBlock()
4470 bool IsExternC = Record[Idx++]; in ReadSubmoduleBlock()
4471 bool InferSubmodules = Record[Idx++]; in ReadSubmoduleBlock()
4472 bool InferExplicitSubmodules = Record[Idx++]; in ReadSubmoduleBlock()
4473 bool InferExportWildcard = Record[Idx++]; in ReadSubmoduleBlock()
4474 bool ConfigMacrosExhaustive = Record[Idx++]; in ReadSubmoduleBlock()
4587 F.LocalNumSubmodules = Record[0]; in ReadSubmoduleBlock()
4588 unsigned LocalBaseSubmoduleID = Record[1]; in ReadSubmoduleBlock()
4606 for (unsigned Idx = 0; Idx != Record.size(); ++Idx) { in ReadSubmoduleBlock()
4610 Unresolved.ID = Record[Idx]; in ReadSubmoduleBlock()
4619 for (unsigned Idx = 0; Idx + 1 < Record.size(); Idx += 2) { in ReadSubmoduleBlock()
4623 Unresolved.ID = Record[Idx]; in ReadSubmoduleBlock()
4625 Unresolved.IsWildcard = Record[Idx + 1]; in ReadSubmoduleBlock()
4635 CurrentModule->addRequirement(Blob, Record[0], Context.getLangOpts(), in ReadSubmoduleBlock()
4642 Module::LinkLibrary(Blob, Record[0])); in ReadSubmoduleBlock()
4653 Unresolved.ID = Record[0]; in ReadSubmoduleBlock()
4664 /// \brief Parse the record that corresponds to a LangOptions data
4671 bool ASTReader::ParseLanguageOptions(const RecordData &Record, in ParseLanguageOptions() argument
4678 LangOpts.Name = Record[Idx++]; in ParseLanguageOptions()
4680 LangOpts.set##Name(static_cast<LangOptions::Type>(Record[Idx++])); in ParseLanguageOptions()
4683 LangOpts.Sanitize.set(SanitizerKind::ID, Record[Idx++]); in ParseLanguageOptions()
4686 for (unsigned N = Record[Idx++]; N; --N) in ParseLanguageOptions()
4687 LangOpts.ModuleFeatures.push_back(ReadString(Record, Idx)); in ParseLanguageOptions()
4689 ObjCRuntime::Kind runtimeKind = (ObjCRuntime::Kind) Record[Idx++]; in ParseLanguageOptions()
4690 VersionTuple runtimeVersion = ReadVersionTuple(Record, Idx); in ParseLanguageOptions()
4693 LangOpts.CurrentModule = ReadString(Record, Idx); in ParseLanguageOptions()
4696 for (unsigned N = Record[Idx++]; N; --N) { in ParseLanguageOptions()
4698 ReadString(Record, Idx)); in ParseLanguageOptions()
4700 LangOpts.CommentOpts.ParseAllComments = Record[Idx++]; in ParseLanguageOptions()
4706 bool ASTReader::ParseTargetOptions(const RecordData &Record, bool Complain, in ParseTargetOptions() argument
4711 TargetOpts.Triple = ReadString(Record, Idx); in ParseTargetOptions()
4712 TargetOpts.CPU = ReadString(Record, Idx); in ParseTargetOptions()
4713 TargetOpts.ABI = ReadString(Record, Idx); in ParseTargetOptions()
4714 for (unsigned N = Record[Idx++]; N; --N) { in ParseTargetOptions()
4715 TargetOpts.FeaturesAsWritten.push_back(ReadString(Record, Idx)); in ParseTargetOptions()
4717 for (unsigned N = Record[Idx++]; N; --N) { in ParseTargetOptions()
4718 TargetOpts.Features.push_back(ReadString(Record, Idx)); in ParseTargetOptions()
4725 bool ASTReader::ParseDiagnosticOptions(const RecordData &Record, bool Complain, in ParseDiagnosticOptions() argument
4729 #define DIAGOPT(Name, Bits, Default) DiagOpts->Name = Record[Idx++]; in ParseDiagnosticOptions()
4731 DiagOpts->set##Name(static_cast<Type>(Record[Idx++])); in ParseDiagnosticOptions()
4734 for (unsigned N = Record[Idx++]; N; --N) in ParseDiagnosticOptions()
4735 DiagOpts->Warnings.push_back(ReadString(Record, Idx)); in ParseDiagnosticOptions()
4736 for (unsigned N = Record[Idx++]; N; --N) in ParseDiagnosticOptions()
4737 DiagOpts->Remarks.push_back(ReadString(Record, Idx)); in ParseDiagnosticOptions()
4742 bool ASTReader::ParseFileSystemOptions(const RecordData &Record, bool Complain, in ParseFileSystemOptions() argument
4746 FSOpts.WorkingDir = ReadString(Record, Idx); in ParseFileSystemOptions()
4750 bool ASTReader::ParseHeaderSearchOptions(const RecordData &Record, in ParseHeaderSearchOptions() argument
4755 HSOpts.Sysroot = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4758 for (unsigned N = Record[Idx++]; N; --N) { in ParseHeaderSearchOptions()
4759 std::string Path = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4761 = static_cast<frontend::IncludeDirGroup>(Record[Idx++]); in ParseHeaderSearchOptions()
4762 bool IsFramework = Record[Idx++]; in ParseHeaderSearchOptions()
4763 bool IgnoreSysRoot = Record[Idx++]; in ParseHeaderSearchOptions()
4769 for (unsigned N = Record[Idx++]; N; --N) { in ParseHeaderSearchOptions()
4770 std::string Prefix = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4771 bool IsSystemHeader = Record[Idx++]; in ParseHeaderSearchOptions()
4775 HSOpts.ResourceDir = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4776 HSOpts.ModuleCachePath = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4777 HSOpts.ModuleUserBuildPath = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4778 HSOpts.DisableModuleHash = Record[Idx++]; in ParseHeaderSearchOptions()
4779 HSOpts.UseBuiltinIncludes = Record[Idx++]; in ParseHeaderSearchOptions()
4780 HSOpts.UseStandardSystemIncludes = Record[Idx++]; in ParseHeaderSearchOptions()
4781 HSOpts.UseStandardCXXIncludes = Record[Idx++]; in ParseHeaderSearchOptions()
4782 HSOpts.UseLibcxx = Record[Idx++]; in ParseHeaderSearchOptions()
4783 std::string SpecificModuleCachePath = ReadString(Record, Idx); in ParseHeaderSearchOptions()
4789 bool ASTReader::ParsePreprocessorOptions(const RecordData &Record, in ParsePreprocessorOptions() argument
4797 for (unsigned N = Record[Idx++]; N; --N) { in ParsePreprocessorOptions()
4798 std::string Macro = ReadString(Record, Idx); in ParsePreprocessorOptions()
4799 bool IsUndef = Record[Idx++]; in ParsePreprocessorOptions()
4804 for (unsigned N = Record[Idx++]; N; --N) { in ParsePreprocessorOptions()
4805 PPOpts.Includes.push_back(ReadString(Record, Idx)); in ParsePreprocessorOptions()
4809 for (unsigned N = Record[Idx++]; N; --N) { in ParsePreprocessorOptions()
4810 PPOpts.MacroIncludes.push_back(ReadString(Record, Idx)); in ParsePreprocessorOptions()
4813 PPOpts.UsePredefines = Record[Idx++]; in ParsePreprocessorOptions()
4814 PPOpts.DetailedRecord = Record[Idx++]; in ParsePreprocessorOptions()
4815 PPOpts.ImplicitPCHInclude = ReadString(Record, Idx); in ParsePreprocessorOptions()
4816 PPOpts.ImplicitPTHInclude = ReadString(Record, Idx); in ParsePreprocessorOptions()
4818 static_cast<ObjCXXARCStandardLibraryKind>(Record[Idx++]); in ParsePreprocessorOptions()
4861 Error("no preprocessing record"); in ReadPreprocessedEntity()
4870 if (Entry.Kind != llvm::BitstreamEntry::Record) in ReadPreprocessedEntity()
4873 // Read the record. in ReadPreprocessedEntity()
4878 RecordData Record; in ReadPreprocessedEntity() local
4881 Entry.ID, Record, &Blob); in ReadPreprocessedEntity()
4884 bool isBuiltin = Record[0]; in ReadPreprocessedEntity()
4888 Name = getLocalIdentifier(M, Record[1]); in ReadPreprocessedEntity()
4891 getGlobalPreprocessedEntityID(M, Record[1]); in ReadPreprocessedEntity()
4908 IdentifierInfo *II = getLocalIdentifier(M, Record[0]); in ReadPreprocessedEntity()
4918 const char *FullFileNameStart = Blob.data() + Record[0]; in ReadPreprocessedEntity()
4919 StringRef FullFileName(FullFileNameStart, Blob.size() - Record[0]); in ReadPreprocessedEntity()
4926 = static_cast<InclusionDirective::InclusionKind>(Record[2]); in ReadPreprocessedEntity()
4929 StringRef(Blob.data(), Record[0]), in ReadPreprocessedEntity()
4930 Record[1], Record[3], in ReadPreprocessedEntity()
5172 /// routine actually reads the record corresponding to the type at the given
5185 // Note that we are loading a type record. in readTypeRecord()
5190 RecordData Record; in readTypeRecord() local
5192 switch ((TypeCode)DeclsCursor.readRecord(Code, Record)) { in readTypeRecord()
5194 if (Record.size() != 2) { in readTypeRecord()
5198 QualType Base = readType(*Loc.F, Record, Idx); in readTypeRecord()
5199 Qualifiers Quals = Qualifiers::fromOpaqueValue(Record[Idx++]); in readTypeRecord()
5204 if (Record.size() != 1) { in readTypeRecord()
5208 QualType ElemType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5213 if (Record.size() != 1) { in readTypeRecord()
5217 QualType PointeeType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5222 if (Record.size() != 1) { in readTypeRecord()
5226 QualType OriginalType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5234 if (Record.size() != 2) { in readTypeRecord()
5238 QualType OriginalTy = readType(*Loc.F, Record, Idx); in readTypeRecord()
5239 QualType AdjustedTy = readType(*Loc.F, Record, Idx); in readTypeRecord()
5244 if (Record.size() != 1) { in readTypeRecord()
5248 QualType PointeeType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5253 if (Record.size() != 2) { in readTypeRecord()
5257 QualType PointeeType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5258 return Context.getLValueReferenceType(PointeeType, Record[1]); in readTypeRecord()
5262 if (Record.size() != 1) { in readTypeRecord()
5266 QualType PointeeType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5271 if (Record.size() != 2) { in readTypeRecord()
5275 QualType PointeeType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5276 QualType ClassType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5284 QualType ElementType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5285 ArrayType::ArraySizeModifier ASM = (ArrayType::ArraySizeModifier)Record[1]; in readTypeRecord()
5286 unsigned IndexTypeQuals = Record[2]; in readTypeRecord()
5288 llvm::APInt Size = ReadAPInt(Record, Idx); in readTypeRecord()
5294 QualType ElementType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5295 ArrayType::ArraySizeModifier ASM = (ArrayType::ArraySizeModifier)Record[1]; in readTypeRecord()
5296 unsigned IndexTypeQuals = Record[2]; in readTypeRecord()
5301 QualType ElementType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5302 ArrayType::ArraySizeModifier ASM = (ArrayType::ArraySizeModifier)Record[1]; in readTypeRecord()
5303 unsigned IndexTypeQuals = Record[2]; in readTypeRecord()
5304 SourceLocation LBLoc = ReadSourceLocation(*Loc.F, Record[3]); in readTypeRecord()
5305 SourceLocation RBLoc = ReadSourceLocation(*Loc.F, Record[4]); in readTypeRecord()
5312 if (Record.size() != 3) { in readTypeRecord()
5317 QualType ElementType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5318 unsigned NumElements = Record[1]; in readTypeRecord()
5319 unsigned VecKind = Record[2]; in readTypeRecord()
5325 if (Record.size() != 3) { in readTypeRecord()
5330 QualType ElementType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5331 unsigned NumElements = Record[1]; in readTypeRecord()
5336 if (Record.size() != 6) { in readTypeRecord()
5340 QualType ResultType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5341 FunctionType::ExtInfo Info(Record[1], Record[2], Record[3], in readTypeRecord()
5342 (CallingConv)Record[4], Record[5]); in readTypeRecord()
5347 QualType ResultType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5350 EPI.ExtInfo = FunctionType::ExtInfo(/*noreturn*/ Record[1], in readTypeRecord()
5351 /*hasregparm*/ Record[2], in readTypeRecord()
5352 /*regparm*/ Record[3], in readTypeRecord()
5353 static_cast<CallingConv>(Record[4]), in readTypeRecord()
5354 /*produces*/ Record[5]); in readTypeRecord()
5358 EPI.Variadic = Record[Idx++]; in readTypeRecord()
5359 EPI.HasTrailingReturn = Record[Idx++]; in readTypeRecord()
5360 EPI.TypeQuals = Record[Idx++]; in readTypeRecord()
5361 EPI.RefQualifier = static_cast<RefQualifierKind>(Record[Idx++]); in readTypeRecord()
5363 readExceptionSpec(*Loc.F, ExceptionStorage, EPI.ExceptionSpec, Record, Idx); in readTypeRecord()
5365 unsigned NumParams = Record[Idx++]; in readTypeRecord()
5368 ParamTypes.push_back(readType(*Loc.F, Record, Idx)); in readTypeRecord()
5376 ReadDeclAs<UnresolvedUsingTypenameDecl>(*Loc.F, Record, Idx)); in readTypeRecord()
5380 if (Record.size() != 2) { in readTypeRecord()
5385 TypedefNameDecl *Decl = ReadDeclAs<TypedefNameDecl>(*Loc.F, Record, Idx); in readTypeRecord()
5386 QualType Canonical = readType(*Loc.F, Record, Idx); in readTypeRecord()
5396 if (Record.size() != 1) { in readTypeRecord()
5400 QualType UnderlyingType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5405 QualType UnderlyingType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5410 QualType BaseType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5411 QualType UnderlyingType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5412 UnaryTransformType::UTTKind UKind = (UnaryTransformType::UTTKind)Record[2]; in readTypeRecord()
5417 QualType Deduced = readType(*Loc.F, Record, Idx); in readTypeRecord()
5418 AutoTypeKeyword Keyword = (AutoTypeKeyword)Record[Idx++]; in readTypeRecord()
5419 bool IsDependent = Deduced.isNull() ? Record[Idx++] : false; in readTypeRecord()
5424 if (Record.size() != 2) { in readTypeRecord()
5425 Error("incorrect encoding of record type"); in readTypeRecord()
5429 bool IsDependent = Record[Idx++]; in readTypeRecord()
5430 RecordDecl *RD = ReadDeclAs<RecordDecl>(*Loc.F, Record, Idx); in readTypeRecord()
5438 if (Record.size() != 2) { in readTypeRecord()
5443 bool IsDependent = Record[Idx++]; in readTypeRecord()
5445 = Context.getEnumType(ReadDeclAs<EnumDecl>(*Loc.F, Record, Idx)); in readTypeRecord()
5451 if (Record.size() != 3) { in readTypeRecord()
5455 QualType modifiedType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5456 QualType equivalentType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5457 AttributedType::Kind kind = static_cast<AttributedType::Kind>(Record[2]); in readTypeRecord()
5462 if (Record.size() != 1) { in readTypeRecord()
5466 QualType InnerType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5471 if (Record.size() != 2) { in readTypeRecord()
5475 QualType Pattern = readType(*Loc.F, Record, Idx); in readTypeRecord()
5479 if (Record[1]) in readTypeRecord()
5480 NumExpansions = Record[1] - 1; in readTypeRecord()
5486 ElaboratedTypeKeyword Keyword = (ElaboratedTypeKeyword)Record[Idx++]; in readTypeRecord()
5487 NestedNameSpecifier *NNS = ReadNestedNameSpecifier(*Loc.F, Record, Idx); in readTypeRecord()
5488 QualType NamedType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5495 = ReadDeclAs<ObjCInterfaceDecl>(*Loc.F, Record, Idx); in readTypeRecord()
5501 QualType Base = readType(*Loc.F, Record, Idx); in readTypeRecord()
5502 unsigned NumTypeArgs = Record[Idx++]; in readTypeRecord()
5505 TypeArgs.push_back(readType(*Loc.F, Record, Idx)); in readTypeRecord()
5506 unsigned NumProtos = Record[Idx++]; in readTypeRecord()
5509 Protos.push_back(ReadDeclAs<ObjCProtocolDecl>(*Loc.F, Record, Idx)); in readTypeRecord()
5510 bool IsKindOf = Record[Idx++]; in readTypeRecord()
5516 QualType Pointee = readType(*Loc.F, Record, Idx); in readTypeRecord()
5522 QualType Parm = readType(*Loc.F, Record, Idx); in readTypeRecord()
5523 QualType Replacement = readType(*Loc.F, Record, Idx); in readTypeRecord()
5531 QualType Parm = readType(*Loc.F, Record, Idx); in readTypeRecord()
5532 TemplateArgument ArgPack = ReadTemplateArgument(*Loc.F, Record, Idx); in readTypeRecord()
5539 CXXRecordDecl *D = ReadDeclAs<CXXRecordDecl>(*Loc.F, Record, Idx); in readTypeRecord()
5540 QualType TST = readType(*Loc.F, Record, Idx); // probably derivable in readTypeRecord()
5560 unsigned Depth = Record[Idx++]; in readTypeRecord()
5561 unsigned Index = Record[Idx++]; in readTypeRecord()
5562 bool Pack = Record[Idx++]; in readTypeRecord()
5564 = ReadDeclAs<TemplateTypeParmDecl>(*Loc.F, Record, Idx); in readTypeRecord()
5570 ElaboratedTypeKeyword Keyword = (ElaboratedTypeKeyword)Record[Idx++]; in readTypeRecord()
5571 NestedNameSpecifier *NNS = ReadNestedNameSpecifier(*Loc.F, Record, Idx); in readTypeRecord()
5572 const IdentifierInfo *Name = GetIdentifierInfo(*Loc.F, Record, Idx); in readTypeRecord()
5573 QualType Canon = readType(*Loc.F, Record, Idx); in readTypeRecord()
5581 ElaboratedTypeKeyword Keyword = (ElaboratedTypeKeyword)Record[Idx++]; in readTypeRecord()
5582 NestedNameSpecifier *NNS = ReadNestedNameSpecifier(*Loc.F, Record, Idx); in readTypeRecord()
5583 const IdentifierInfo *Name = GetIdentifierInfo(*Loc.F, Record, Idx); in readTypeRecord()
5584 unsigned NumArgs = Record[Idx++]; in readTypeRecord()
5588 Args.push_back(ReadTemplateArgument(*Loc.F, Record, Idx)); in readTypeRecord()
5597 QualType ElementType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5599 = (ArrayType::ArraySizeModifier)Record[Idx++]; in readTypeRecord()
5600 unsigned IndexTypeQuals = Record[Idx++]; in readTypeRecord()
5604 SourceRange Brackets = ReadSourceRange(*Loc.F, Record, Idx); in readTypeRecord()
5612 bool IsDependent = Record[Idx++]; in readTypeRecord()
5613 TemplateName Name = ReadTemplateName(*Loc.F, Record, Idx); in readTypeRecord()
5615 ReadTemplateArgumentList(Args, *Loc.F, Record, Idx); in readTypeRecord()
5616 QualType Underlying = readType(*Loc.F, Record, Idx); in readTypeRecord()
5629 if (Record.size() != 1) { in readTypeRecord()
5633 QualType ValueType = readType(*Loc.F, Record, Idx); in readTypeRecord()
5643 const RecordData &Record, unsigned &Idx) { in readExceptionSpec() argument
5645 static_cast<ExceptionSpecificationType>(Record[Idx++]); in readExceptionSpec()
5648 for (unsigned I = 0, N = Record[Idx++]; I != N; ++I) in readExceptionSpec()
5649 Exceptions.push_back(readType(ModuleFile, Record, Idx)); in readExceptionSpec()
5654 ESI.SourceDecl = ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx); in readExceptionSpec()
5655 ESI.SourceTemplate = ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx); in readExceptionSpec()
5657 ESI.SourceDecl = ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx); in readExceptionSpec()
5664 const ASTReader::RecordData &Record; member in clang::TypeLocReader
5673 T *ReadDeclAs(const ASTReader::RecordData &Record, unsigned &Idx) { in ReadDeclAs() argument
5674 return Reader.ReadDeclAs<T>(F, Record, Idx); in ReadDeclAs()
5679 const ASTReader::RecordData &Record, unsigned &Idx) in TypeLocReader() argument
5680 : Reader(Reader), F(F), Record(Record), Idx(Idx) in TypeLocReader()
5699 TL.setBuiltinLoc(ReadSourceLocation(Record, Idx)); in VisitBuiltinTypeLoc()
5701 TL.setWrittenTypeSpec(static_cast<DeclSpec::TST>(Record[Idx++])); in VisitBuiltinTypeLoc()
5702 TL.setWrittenSignSpec(static_cast<DeclSpec::TSS>(Record[Idx++])); in VisitBuiltinTypeLoc()
5703 TL.setWrittenWidthSpec(static_cast<DeclSpec::TSW>(Record[Idx++])); in VisitBuiltinTypeLoc()
5704 TL.setModeAttr(Record[Idx++]); in VisitBuiltinTypeLoc()
5708 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitComplexTypeLoc()
5711 TL.setStarLoc(ReadSourceLocation(Record, Idx)); in VisitPointerTypeLoc()
5720 TL.setCaretLoc(ReadSourceLocation(Record, Idx)); in VisitBlockPointerTypeLoc()
5723 TL.setAmpLoc(ReadSourceLocation(Record, Idx)); in VisitLValueReferenceTypeLoc()
5726 TL.setAmpAmpLoc(ReadSourceLocation(Record, Idx)); in VisitRValueReferenceTypeLoc()
5729 TL.setStarLoc(ReadSourceLocation(Record, Idx)); in VisitMemberPointerTypeLoc()
5730 TL.setClassTInfo(Reader.GetTypeSourceInfo(F, Record, Idx)); in VisitMemberPointerTypeLoc()
5733 TL.setLBracketLoc(ReadSourceLocation(Record, Idx)); in VisitArrayTypeLoc()
5734 TL.setRBracketLoc(ReadSourceLocation(Record, Idx)); in VisitArrayTypeLoc()
5735 if (Record[Idx++]) in VisitArrayTypeLoc()
5755 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitDependentSizedExtVectorTypeLoc()
5758 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitVectorTypeLoc()
5761 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitExtVectorTypeLoc()
5764 TL.setLocalRangeBegin(ReadSourceLocation(Record, Idx)); in VisitFunctionTypeLoc()
5765 TL.setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitFunctionTypeLoc()
5766 TL.setRParenLoc(ReadSourceLocation(Record, Idx)); in VisitFunctionTypeLoc()
5767 TL.setLocalRangeEnd(ReadSourceLocation(Record, Idx)); in VisitFunctionTypeLoc()
5769 TL.setParam(i, ReadDeclAs<ParmVarDecl>(Record, Idx)); in VisitFunctionTypeLoc()
5779 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitUnresolvedUsingTypeLoc()
5782 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitTypedefTypeLoc()
5785 TL.setTypeofLoc(ReadSourceLocation(Record, Idx)); in VisitTypeOfExprTypeLoc()
5786 TL.setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitTypeOfExprTypeLoc()
5787 TL.setRParenLoc(ReadSourceLocation(Record, Idx)); in VisitTypeOfExprTypeLoc()
5790 TL.setTypeofLoc(ReadSourceLocation(Record, Idx)); in VisitTypeOfTypeLoc()
5791 TL.setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitTypeOfTypeLoc()
5792 TL.setRParenLoc(ReadSourceLocation(Record, Idx)); in VisitTypeOfTypeLoc()
5793 TL.setUnderlyingTInfo(Reader.GetTypeSourceInfo(F, Record, Idx)); in VisitTypeOfTypeLoc()
5796 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitDecltypeTypeLoc()
5799 TL.setKWLoc(ReadSourceLocation(Record, Idx)); in VisitUnaryTransformTypeLoc()
5800 TL.setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitUnaryTransformTypeLoc()
5801 TL.setRParenLoc(ReadSourceLocation(Record, Idx)); in VisitUnaryTransformTypeLoc()
5802 TL.setUnderlyingTInfo(Reader.GetTypeSourceInfo(F, Record, Idx)); in VisitUnaryTransformTypeLoc()
5805 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitAutoTypeLoc()
5808 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitRecordTypeLoc()
5811 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitEnumTypeLoc()
5814 TL.setAttrNameLoc(ReadSourceLocation(Record, Idx)); in VisitAttributedTypeLoc()
5817 range.setBegin(ReadSourceLocation(Record, Idx)); in VisitAttributedTypeLoc()
5818 range.setEnd(ReadSourceLocation(Record, Idx)); in VisitAttributedTypeLoc()
5822 if (Record[Idx++]) in VisitAttributedTypeLoc()
5827 TL.setAttrEnumOperandLoc(ReadSourceLocation(Record, Idx)); in VisitAttributedTypeLoc()
5830 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitTemplateTypeParmTypeLoc()
5834 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitSubstTemplateTypeParmTypeLoc()
5838 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitSubstTemplateTypeParmPackTypeLoc()
5842 TL.setTemplateKeywordLoc(ReadSourceLocation(Record, Idx)); in VisitTemplateSpecializationTypeLoc()
5843 TL.setTemplateNameLoc(ReadSourceLocation(Record, Idx)); in VisitTemplateSpecializationTypeLoc()
5844 TL.setLAngleLoc(ReadSourceLocation(Record, Idx)); in VisitTemplateSpecializationTypeLoc()
5845 TL.setRAngleLoc(ReadSourceLocation(Record, Idx)); in VisitTemplateSpecializationTypeLoc()
5850 Record, Idx)); in VisitTemplateSpecializationTypeLoc()
5853 TL.setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitParenTypeLoc()
5854 TL.setRParenLoc(ReadSourceLocation(Record, Idx)); in VisitParenTypeLoc()
5857 TL.setElaboratedKeywordLoc(ReadSourceLocation(Record, Idx)); in VisitElaboratedTypeLoc()
5858 TL.setQualifierLoc(Reader.ReadNestedNameSpecifierLoc(F, Record, Idx)); in VisitElaboratedTypeLoc()
5861 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitInjectedClassNameTypeLoc()
5864 TL.setElaboratedKeywordLoc(ReadSourceLocation(Record, Idx)); in VisitDependentNameTypeLoc()
5865 TL.setQualifierLoc(Reader.ReadNestedNameSpecifierLoc(F, Record, Idx)); in VisitDependentNameTypeLoc()
5866 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitDependentNameTypeLoc()
5870 TL.setElaboratedKeywordLoc(ReadSourceLocation(Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5871 TL.setQualifierLoc(Reader.ReadNestedNameSpecifierLoc(F, Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5872 TL.setTemplateKeywordLoc(ReadSourceLocation(Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5873 TL.setTemplateNameLoc(ReadSourceLocation(Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5874 TL.setLAngleLoc(ReadSourceLocation(Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5875 TL.setRAngleLoc(ReadSourceLocation(Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5880 Record, Idx)); in VisitDependentTemplateSpecializationTypeLoc()
5883 TL.setEllipsisLoc(ReadSourceLocation(Record, Idx)); in VisitPackExpansionTypeLoc()
5886 TL.setNameLoc(ReadSourceLocation(Record, Idx)); in VisitObjCInterfaceTypeLoc()
5889 TL.setHasBaseTypeAsWritten(Record[Idx++]); in VisitObjCObjectTypeLoc()
5890 TL.setTypeArgsLAngleLoc(ReadSourceLocation(Record, Idx)); in VisitObjCObjectTypeLoc()
5891 TL.setTypeArgsRAngleLoc(ReadSourceLocation(Record, Idx)); in VisitObjCObjectTypeLoc()
5893 TL.setTypeArgTInfo(i, Reader.GetTypeSourceInfo(F, Record, Idx)); in VisitObjCObjectTypeLoc()
5894 TL.setProtocolLAngleLoc(ReadSourceLocation(Record, Idx)); in VisitObjCObjectTypeLoc()
5895 TL.setProtocolRAngleLoc(ReadSourceLocation(Record, Idx)); in VisitObjCObjectTypeLoc()
5897 TL.setProtocolLoc(i, ReadSourceLocation(Record, Idx)); in VisitObjCObjectTypeLoc()
5900 TL.setStarLoc(ReadSourceLocation(Record, Idx)); in VisitObjCObjectPointerTypeLoc()
5903 TL.setKWLoc(ReadSourceLocation(Record, Idx)); in VisitAtomicTypeLoc()
5904 TL.setLParenLoc(ReadSourceLocation(Record, Idx)); in VisitAtomicTypeLoc()
5905 TL.setRParenLoc(ReadSourceLocation(Record, Idx)); in VisitAtomicTypeLoc()
5909 const RecordData &Record, in GetTypeSourceInfo() argument
5911 QualType InfoTy = readType(F, Record, Idx); in GetTypeSourceInfo()
5916 TypeLocReader TLR(*this, F, Record, Idx); in GetTypeSourceInfo()
6146 const RecordData &Record, in GetTemplateArgumentLocInfo() argument
6152 return GetTypeSourceInfo(F, Record, Index); in GetTemplateArgumentLocInfo()
6154 NestedNameSpecifierLoc QualifierLoc = ReadNestedNameSpecifierLoc(F, Record, in GetTemplateArgumentLocInfo()
6156 SourceLocation TemplateNameLoc = ReadSourceLocation(F, Record, Index); in GetTemplateArgumentLocInfo()
6161 NestedNameSpecifierLoc QualifierLoc = ReadNestedNameSpecifierLoc(F, Record, in GetTemplateArgumentLocInfo()
6163 SourceLocation TemplateNameLoc = ReadSourceLocation(F, Record, Index); in GetTemplateArgumentLocInfo()
6164 SourceLocation EllipsisLoc = ReadSourceLocation(F, Record, Index); in GetTemplateArgumentLocInfo()
6181 const RecordData &Record, unsigned &Index) { in ReadTemplateArgumentLoc() argument
6182 TemplateArgument Arg = ReadTemplateArgument(F, Record, Index); in ReadTemplateArgumentLoc()
6185 if (Record[Index++]) // bool InfoHasSameExpr. in ReadTemplateArgumentLoc()
6189 Record, Index)); in ReadTemplateArgumentLoc()
6194 const RecordData &Record, in ReadASTTemplateArgumentListInfo() argument
6196 SourceLocation LAngleLoc = ReadSourceLocation(F, Record, Index); in ReadASTTemplateArgumentListInfo()
6197 SourceLocation RAngleLoc = ReadSourceLocation(F, Record, Index); in ReadASTTemplateArgumentListInfo()
6198 unsigned NumArgsAsWritten = Record[Index++]; in ReadASTTemplateArgumentListInfo()
6201 TemplArgsInfo.addArgument(ReadTemplateArgumentLoc(F, Record, Index)); in ReadASTTemplateArgumentListInfo()
6268 const RecordData &Record, in ReadCXXCtorInitializersRef() argument
6270 if (Idx >= Record.size() || Record[Idx] > M.LocalNumCXXCtorInitializers) { in ReadCXXCtorInitializersRef()
6275 unsigned LocalID = Record[Idx++]; in ReadCXXCtorInitializersRef()
6287 RecordData Record; in GetExternalCXXCtorInitializers() local
6289 unsigned RecCode = Cursor.readRecord(Code, Record); in GetExternalCXXCtorInitializers()
6296 return ReadCXXCtorInitializers(*Loc.F, Record, Idx); in GetExternalCXXCtorInitializers()
6300 const RecordData &Record, in readCXXBaseSpecifiers() argument
6302 if (Idx >= Record.size() || Record[Idx] > M.LocalNumCXXBaseSpecifiers) { in readCXXBaseSpecifiers()
6307 unsigned LocalID = Record[Idx++]; in readCXXBaseSpecifiers()
6317 RecordData Record; in GetExternalCXXBaseSpecifiers() local
6319 unsigned RecCode = Cursor.readRecord(Code, Record); in GetExternalCXXBaseSpecifiers()
6326 unsigned NumBases = Record[Idx++]; in GetExternalCXXBaseSpecifiers()
6330 Bases[I] = ReadCXXBaseSpecifier(*Loc.F, Record, Idx); in GetExternalCXXBaseSpecifiers()
6493 const RecordData &Record, in ReadDeclID() argument
6495 if (Idx >= Record.size()) { in ReadDeclID()
6500 return getGlobalDeclID(F, Record[Idx++]); in ReadDeclID()
7300 VT.Record = dyn_cast_or_null<CXXRecordDecl>(GetDecl(VTableUses[Idx++])); in ReadUsedVTables()
7393 // If we're simply supposed to record the declarations, do so now. in SetGloballyVisibleDecls()
7622 const RecordData &Record, unsigned &Idx) { in ReadDeclarationName() argument
7623 DeclarationName::NameKind Kind = (DeclarationName::NameKind)Record[Idx++]; in ReadDeclarationName()
7626 return DeclarationName(GetIdentifierInfo(F, Record, Idx)); in ReadDeclarationName()
7631 return DeclarationName(ReadSelector(F, Record, Idx)); in ReadDeclarationName()
7635 Context.getCanonicalType(readType(F, Record, Idx))); in ReadDeclarationName()
7639 Context.getCanonicalType(readType(F, Record, Idx))); in ReadDeclarationName()
7643 Context.getCanonicalType(readType(F, Record, Idx))); in ReadDeclarationName()
7647 (OverloadedOperatorKind)Record[Idx++]); in ReadDeclarationName()
7651 GetIdentifierInfo(F, Record, Idx)); in ReadDeclarationName()
7663 const RecordData &Record, unsigned &Idx) { in ReadDeclarationNameLoc() argument
7668 DNLoc.NamedType.TInfo = GetTypeSourceInfo(F, Record, Idx); in ReadDeclarationNameLoc()
7673 = ReadSourceLocation(F, Record, Idx).getRawEncoding(); in ReadDeclarationNameLoc()
7675 = ReadSourceLocation(F, Record, Idx).getRawEncoding(); in ReadDeclarationNameLoc()
7680 = ReadSourceLocation(F, Record, Idx).getRawEncoding(); in ReadDeclarationNameLoc()
7694 const RecordData &Record, unsigned &Idx) { in ReadDeclarationNameInfo() argument
7695 NameInfo.setName(ReadDeclarationName(F, Record, Idx)); in ReadDeclarationNameInfo()
7696 NameInfo.setLoc(ReadSourceLocation(F, Record, Idx)); in ReadDeclarationNameInfo()
7698 ReadDeclarationNameLoc(F, DNLoc, NameInfo.getName(), Record, Idx); in ReadDeclarationNameInfo()
7703 const RecordData &Record, unsigned &Idx) { in ReadQualifierInfo() argument
7704 Info.QualifierLoc = ReadNestedNameSpecifierLoc(F, Record, Idx); in ReadQualifierInfo()
7705 unsigned NumTPLists = Record[Idx++]; in ReadQualifierInfo()
7710 Info.TemplParamLists[i] = ReadTemplateParameterList(F, Record, Idx); in ReadQualifierInfo()
7715 ASTReader::ReadTemplateName(ModuleFile &F, const RecordData &Record, in ReadTemplateName() argument
7717 TemplateName::NameKind Kind = (TemplateName::NameKind)Record[Idx++]; in ReadTemplateName()
7720 return TemplateName(ReadDeclAs<TemplateDecl>(F, Record, Idx)); in ReadTemplateName()
7723 unsigned size = Record[Idx++]; in ReadTemplateName()
7726 Decls.addDecl(ReadDeclAs<NamedDecl>(F, Record, Idx)); in ReadTemplateName()
7732 NestedNameSpecifier *NNS = ReadNestedNameSpecifier(F, Record, Idx); in ReadTemplateName()
7733 bool hasTemplKeyword = Record[Idx++]; in ReadTemplateName()
7734 TemplateDecl *Template = ReadDeclAs<TemplateDecl>(F, Record, Idx); in ReadTemplateName()
7739 NestedNameSpecifier *NNS = ReadNestedNameSpecifier(F, Record, Idx); in ReadTemplateName()
7740 if (Record[Idx++]) // isIdentifier in ReadTemplateName()
7742 GetIdentifierInfo(F, Record, in ReadTemplateName()
7745 (OverloadedOperatorKind)Record[Idx++]); in ReadTemplateName()
7750 = ReadDeclAs<TemplateTemplateParmDecl>(F, Record, Idx); in ReadTemplateName()
7752 TemplateName replacement = ReadTemplateName(F, Record, Idx); in ReadTemplateName()
7758 = ReadDeclAs<TemplateTemplateParmDecl>(F, Record, Idx); in ReadTemplateName()
7762 TemplateArgument ArgPack = ReadTemplateArgument(F, Record, Idx); in ReadTemplateName()
7774 const RecordData &Record, in ReadTemplateArgument() argument
7782 TemplateArgument Arg = ReadTemplateArgument(F, Record, Idx, false); in ReadTemplateArgument()
7786 TemplateArgument::ArgKind Kind = (TemplateArgument::ArgKind)Record[Idx++]; in ReadTemplateArgument()
7791 return TemplateArgument(readType(F, Record, Idx)); in ReadTemplateArgument()
7793 ValueDecl *D = ReadDeclAs<ValueDecl>(F, Record, Idx); in ReadTemplateArgument()
7794 return TemplateArgument(D, readType(F, Record, Idx)); in ReadTemplateArgument()
7797 return TemplateArgument(readType(F, Record, Idx), /*isNullPtr*/true); in ReadTemplateArgument()
7799 llvm::APSInt Value = ReadAPSInt(Record, Idx); in ReadTemplateArgument()
7800 QualType T = readType(F, Record, Idx); in ReadTemplateArgument()
7804 return TemplateArgument(ReadTemplateName(F, Record, Idx)); in ReadTemplateArgument()
7806 TemplateName Name = ReadTemplateName(F, Record, Idx); in ReadTemplateArgument()
7808 if (unsigned NumExpansions = Record[Idx++]) in ReadTemplateArgument()
7815 unsigned NumArgs = Record[Idx++]; in ReadTemplateArgument()
7818 Args[I] = ReadTemplateArgument(F, Record, Idx); in ReadTemplateArgument()
7828 const RecordData &Record, unsigned &Idx) { in ReadTemplateParameterList() argument
7829 SourceLocation TemplateLoc = ReadSourceLocation(F, Record, Idx); in ReadTemplateParameterList()
7830 SourceLocation LAngleLoc = ReadSourceLocation(F, Record, Idx); in ReadTemplateParameterList()
7831 SourceLocation RAngleLoc = ReadSourceLocation(F, Record, Idx); in ReadTemplateParameterList()
7833 unsigned NumParams = Record[Idx++]; in ReadTemplateParameterList()
7837 Params.push_back(ReadDeclAs<NamedDecl>(F, Record, Idx)); in ReadTemplateParameterList()
7848 ModuleFile &F, const RecordData &Record, in ReadTemplateArgumentList() argument
7850 unsigned NumTemplateArgs = Record[Idx++]; in ReadTemplateArgumentList()
7853 TemplArgs.push_back(ReadTemplateArgument(F, Record, Idx, Canonicalize)); in ReadTemplateArgumentList()
7858 const RecordData &Record, unsigned &Idx) { in ReadUnresolvedSet() argument
7859 unsigned NumDecls = Record[Idx++]; in ReadUnresolvedSet()
7862 DeclID ID = ReadDeclID(F, Record, Idx); in ReadUnresolvedSet()
7863 AccessSpecifier AS = (AccessSpecifier)Record[Idx++]; in ReadUnresolvedSet()
7870 const RecordData &Record, unsigned &Idx) { in ReadCXXBaseSpecifier() argument
7871 bool isVirtual = static_cast<bool>(Record[Idx++]); in ReadCXXBaseSpecifier()
7872 bool isBaseOfClass = static_cast<bool>(Record[Idx++]); in ReadCXXBaseSpecifier()
7873 AccessSpecifier AS = static_cast<AccessSpecifier>(Record[Idx++]); in ReadCXXBaseSpecifier()
7874 bool inheritConstructors = static_cast<bool>(Record[Idx++]); in ReadCXXBaseSpecifier()
7875 TypeSourceInfo *TInfo = GetTypeSourceInfo(F, Record, Idx); in ReadCXXBaseSpecifier()
7876 SourceRange Range = ReadSourceRange(F, Record, Idx); in ReadCXXBaseSpecifier()
7877 SourceLocation EllipsisLoc = ReadSourceLocation(F, Record, Idx); in ReadCXXBaseSpecifier()
7885 ASTReader::ReadCXXCtorInitializers(ModuleFile &F, const RecordData &Record, in ReadCXXCtorInitializers() argument
7887 unsigned NumInitializers = Record[Idx++]; in ReadCXXCtorInitializers()
7896 CtorInitializerType Type = (CtorInitializerType)Record[Idx++]; in ReadCXXCtorInitializers()
7899 TInfo = GetTypeSourceInfo(F, Record, Idx); in ReadCXXCtorInitializers()
7900 IsBaseVirtual = Record[Idx++]; in ReadCXXCtorInitializers()
7904 TInfo = GetTypeSourceInfo(F, Record, Idx); in ReadCXXCtorInitializers()
7908 Member = ReadDeclAs<FieldDecl>(F, Record, Idx); in ReadCXXCtorInitializers()
7912 IndirectMember = ReadDeclAs<IndirectFieldDecl>(F, Record, Idx); in ReadCXXCtorInitializers()
7916 SourceLocation MemberOrEllipsisLoc = ReadSourceLocation(F, Record, Idx); in ReadCXXCtorInitializers()
7918 SourceLocation LParenLoc = ReadSourceLocation(F, Record, Idx); in ReadCXXCtorInitializers()
7919 SourceLocation RParenLoc = ReadSourceLocation(F, Record, Idx); in ReadCXXCtorInitializers()
7920 bool IsWritten = Record[Idx++]; in ReadCXXCtorInitializers()
7924 SourceOrderOrNumArrayIndices = Record[Idx++]; in ReadCXXCtorInitializers()
7926 SourceOrderOrNumArrayIndices = Record[Idx++]; in ReadCXXCtorInitializers()
7929 Indices.push_back(ReadDeclAs<VarDecl>(F, Record, Idx)); in ReadCXXCtorInitializers()
7971 const RecordData &Record, unsigned &Idx) { in ReadNestedNameSpecifier() argument
7972 unsigned N = Record[Idx++]; in ReadNestedNameSpecifier()
7976 = (NestedNameSpecifier::SpecifierKind)Record[Idx++]; in ReadNestedNameSpecifier()
7979 IdentifierInfo *II = GetIdentifierInfo(F, Record, Idx); in ReadNestedNameSpecifier()
7985 NamespaceDecl *NS = ReadDeclAs<NamespaceDecl>(F, Record, Idx); in ReadNestedNameSpecifier()
7991 NamespaceAliasDecl *Alias =ReadDeclAs<NamespaceAliasDecl>(F, Record, Idx); in ReadNestedNameSpecifier()
7998 const Type *T = readType(F, Record, Idx).getTypePtrOrNull(); in ReadNestedNameSpecifier()
8002 bool Template = Record[Idx++]; in ReadNestedNameSpecifier()
8014 CXXRecordDecl *RD = ReadDeclAs<CXXRecordDecl>(F, Record, Idx); in ReadNestedNameSpecifier()
8025 ASTReader::ReadNestedNameSpecifierLoc(ModuleFile &F, const RecordData &Record, in ReadNestedNameSpecifierLoc() argument
8027 unsigned N = Record[Idx++]; in ReadNestedNameSpecifierLoc()
8031 = (NestedNameSpecifier::SpecifierKind)Record[Idx++]; in ReadNestedNameSpecifierLoc()
8034 IdentifierInfo *II = GetIdentifierInfo(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8035 SourceRange Range = ReadSourceRange(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8041 NamespaceDecl *NS = ReadDeclAs<NamespaceDecl>(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8042 SourceRange Range = ReadSourceRange(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8048 NamespaceAliasDecl *Alias =ReadDeclAs<NamespaceAliasDecl>(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8049 SourceRange Range = ReadSourceRange(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8056 bool Template = Record[Idx++]; in ReadNestedNameSpecifierLoc()
8057 TypeSourceInfo *T = GetTypeSourceInfo(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8060 SourceLocation ColonColonLoc = ReadSourceLocation(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8070 SourceLocation ColonColonLoc = ReadSourceLocation(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8076 CXXRecordDecl *RD = ReadDeclAs<CXXRecordDecl>(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8077 SourceRange Range = ReadSourceRange(F, Record, Idx); in ReadNestedNameSpecifierLoc()
8088 ASTReader::ReadSourceRange(ModuleFile &F, const RecordData &Record, in ReadSourceRange() argument
8090 SourceLocation beg = ReadSourceLocation(F, Record, Idx); in ReadSourceRange()
8091 SourceLocation end = ReadSourceLocation(F, Record, Idx); in ReadSourceRange()
8096 llvm::APInt ASTReader::ReadAPInt(const RecordData &Record, unsigned &Idx) { in ReadAPInt() argument
8097 unsigned BitWidth = Record[Idx++]; in ReadAPInt()
8099 llvm::APInt Result(BitWidth, NumWords, &Record[Idx]); in ReadAPInt()
8105 llvm::APSInt ASTReader::ReadAPSInt(const RecordData &Record, unsigned &Idx) { in ReadAPSInt() argument
8106 bool isUnsigned = Record[Idx++]; in ReadAPSInt()
8107 return llvm::APSInt(ReadAPInt(Record, Idx), isUnsigned); in ReadAPSInt()
8111 llvm::APFloat ASTReader::ReadAPFloat(const RecordData &Record, in ReadAPFloat() argument
8114 return llvm::APFloat(Sem, ReadAPInt(Record, Idx)); in ReadAPFloat()
8118 std::string ASTReader::ReadString(const RecordData &Record, unsigned &Idx) { in ReadString() argument
8119 unsigned Len = Record[Idx++]; in ReadString()
8120 std::string Result(Record.data() + Idx, Record.data() + Idx + Len); in ReadString()
8125 std::string ASTReader::ReadPath(ModuleFile &F, const RecordData &Record, in ReadPath() argument
8127 std::string Filename = ReadString(Record, Idx); in ReadPath()
8132 VersionTuple ASTReader::ReadVersionTuple(const RecordData &Record, in ReadVersionTuple() argument
8134 unsigned Major = Record[Idx++]; in ReadVersionTuple()
8135 unsigned Minor = Record[Idx++]; in ReadVersionTuple()
8136 unsigned Subminor = Record[Idx++]; in ReadVersionTuple()
8145 const RecordData &Record, in ReadCXXTemporary() argument
8147 CXXDestructorDecl *Decl = ReadDeclAs<CXXDestructorDecl>(F, Record, Idx); in ReadCXXTemporary()
8165 /// \brief Record that the given ID maps to the given switch-case
8195 RecordData Record; in ReadComments() local
8203 Error("malformed block record in AST file"); in ReadComments()
8207 case llvm::BitstreamEntry::Record: in ReadComments()
8212 // Read a record. in ReadComments()
8213 Record.clear(); in ReadComments()
8214 switch ((CommentRecordTypes)Cursor.readRecord(Entry.ID, Record)) { in ReadComments()
8217 SourceRange SR = ReadSourceRange(F, Record, Idx); in ReadComments()
8219 (RawComment::CommentKind) Record[Idx++]; in ReadComments()
8220 bool IsTrailingComment = Record[Idx++]; in ReadComments()
8221 bool IsAlmostTrailingComment = Record[Idx++]; in ReadComments()