Home | History | Annotate | Download | only in Serialization

Lines Matching full:record

44     const RecordData &Record;
72 for (unsigned I = 0, Size = Record[Idx++]; I != Size; ++I)
73 IDs.push_back(ReadDeclID(Record, Idx));
199 unsigned RawLocation, const RecordData &Record, unsigned &Idx)
201 RawLocation(RawLocation), Record(Record), Idx(Idx),
233 const RecordData &Record);
431 GetTypeSourceInfo(Record, Idx);
434 DD->DeclInfo = GetTypeSourceInfo(Record, Idx);
455 if (Record[Idx++]) {
457 CD->NumCtorInitializers = Record[Idx++];
460 Reader.ReadCXXCtorInitializersRef(F, Record, Idx);
477 GlobalDeclID SemaDCIDForTemplateParmDecl = ReadDeclID(Record, Idx);
478 GlobalDeclID LexicalDCIDForTemplateParmDecl = ReadDeclID(Record, Idx);
486 DeclContext *SemaDC = ReadDeclAs<DeclContext>(Record, Idx);
487 DeclContext *LexicalDC = ReadDeclAs<DeclContext>(Record, Idx);
497 D->setInvalidDecl(Record[Idx++]);
498 if (Record[Idx++]) { // hasAttrs
500 Reader.ReadAttributes(F, Attrs, Record, Idx);
505 D->setImplicit(Record[Idx++]);
506 D->Used = Record[Idx++];
507 D->setReferenced(Record[Idx++]);
508 D->setTopLevelDeclInObjCContainer(Record[Idx++]);
509 D->setAccess((AccessSpecifier)Record[Idx++]);
511 D->setModulePrivate(Record[Idx++]);
516 if (unsigned SubmoduleID = readSubmoduleID(Record, Idx)) {
546 ND->setDeclName(Reader.ReadDeclarationName(F, Record, Idx));
547 AnonymousDeclNumber = Record[Idx++];
552 TD->setLocStart(ReadSourceLocation(Record, Idx));
554 TypeIDForTypeDecl = Reader.getGlobalTypeID(F, Record[Idx++]);
561 TypeSourceInfo *TInfo = GetTypeSourceInfo(Record, Idx);
562 if (Record[Idx++]) { // isModed
563 QualType modedT = Reader.readType(F, Record, Idx);
577 if (auto *Template = ReadDeclAs<TypeAliasTemplateDecl>(Record, Idx))
588 TD->IdentifierNamespace = Record[Idx++];
589 TD->setTagKind((TagDecl::TagKind)Record[Idx++]);
591 TD->setCompleteDefinition(Record[Idx++]);
592 TD->setEmbeddedInDeclarator(Record[Idx++]);
593 TD->setFreeStanding(Record[Idx++]);
594 TD->setCompleteDefinitionRequired(Record[Idx++]);
595 TD->setRBraceLoc(ReadSourceLocation(Record, Idx));
597 switch (Record[Idx++]) {
602 ReadQualifierInfo(*Info, Record, Idx);
607 NamedDeclForTagDecl = ReadDeclID(Record, Idx);
608 TypedefNameForLinkage = Reader.GetIdentifierInfo(F, Record, Idx);
621 if (TypeSourceInfo *TI = Reader.GetTypeSourceInfo(F, Record, Idx))
624 ED->setIntegerType(Reader.readType(F, Record, Idx));
625 ED->setPromotionType(Reader.readType(F, Record, Idx));
626 ED->setNumPositiveBits(Record[Idx++]);
627 ED->setNumNegativeBits(Record[Idx++]);
628 ED->IsScoped = Record[Idx++];
629 ED->IsScopedUsingClassTag = Record[Idx++];
630 ED->IsFixed = Record[Idx++];
657 if (EnumDecl *InstED = ReadDeclAs<EnumDecl>(Record, Idx)) {
658 TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++];
659 SourceLocation POI = ReadSourceLocation(Record, Idx);
668 RD->setHasFlexibleArrayMember(Record[Idx++]);
669 RD->setAnonymousStructOrUnion(Record[Idx++]);
670 RD->setHasObjectMember(Record[Idx++]);
671 RD->setHasVolatileMember(Record[Idx++]);
677 VD->setType(Reader.readType(F, Record, Idx));
682 if (Record[Idx++])
684 ECD->setInitVal(Reader.ReadAPSInt(Record, Idx));
690 DD->setInnerLocStart(ReadSourceLocation(Record, Idx));
691 if (Record[Idx++]) { // hasExtInfo
694 ReadQualifierInfo(*Info, Record, Idx);
703 ReadDeclarationNameLoc(FD->DNLoc, FD->getDeclName(), Record, Idx);
704 FD->IdentifierNamespace = Record[Idx++];
709 FD->SClass = (StorageClass)Record[Idx++];
710 FD->IsInline = Record[Idx++];
711 FD->IsInlineSpecified = Record[Idx++];
712 FD->IsVirtualAsWritten = Record[Idx++];
713 FD->IsPure = Record[Idx++];
714 FD->HasInheritedPrototype = Record[Idx++];
715 FD->HasWrittenPrototype = Record[Idx++];
716 FD->IsDeleted = Record[Idx++];
717 FD->IsTrivial = Record[Idx++];
718 FD->IsDefaulted = Record[Idx++];
719 FD->IsExplicitlyDefaulted = Record[Idx++];
720 FD->HasImplicitReturnZero = Record[Idx++];
721 FD->IsConstexpr = Record[Idx++];
722 FD->HasSkippedBody = Record[Idx++];
723 FD->IsLateTemplateParsed = Record[Idx++];
724 FD->setCachedLinkage(Linkage(Record[Idx++]));
725 FD->EndRangeLoc = ReadSourceLocation(Record, Idx);
727 switch ((FunctionDecl::TemplatedKind)Record[Idx++]) {
733 FD->setDescribedFunctionTemplate(ReadDeclAs<FunctionTemplateDecl>(Record,
737 FunctionDecl *InstFD = ReadDeclAs<FunctionDecl>(Record, Idx);
738 TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++];
739 SourceLocation POI = ReadSourceLocation(Record, Idx);
746 FunctionTemplateDecl *Template = ReadDeclAs<FunctionTemplateDecl>(Record,
748 TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++];
752 Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx,
758 bool HasTemplateArgumentsAsWritten = Record[Idx++];
760 unsigned NumTemplateArgLocs = Record[Idx++];
764 Reader.ReadTemplateArgumentLoc(F, Record, Idx));
766 LAngleLoc = ReadSourceLocation(Record, Idx);
767 RAngleLoc = ReadSourceLocation(Record, Idx);
770 SourceLocation POI = ReadSourceLocation(Record, Idx);
790 = ReadDeclAs<FunctionTemplateDecl>(Record, Idx);
815 unsigned NumTemplates = Record[Idx++];
817 TemplDecls.addDecl(ReadDeclAs<NamedDecl>(Record, Idx));
821 Record[Idx++];
823 TemplArgs.addArgument(Reader.ReadTemplateArgumentLoc(F, Record, Idx));
824 TemplArgs.setLAngleLoc(ReadSourceLocation(Record, Idx));
825 TemplArgs.setRAngleLoc(ReadSourceLocation(Record, Idx));
836 unsigned NumParams = Record[Idx++];
840 Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));
846 if (Record[Idx++]) {
851 MD->setSelfDecl(ReadDeclAs<ImplicitParamDecl>(Record, Idx));
852 MD->setCmdDecl(ReadDeclAs<ImplicitParamDecl>(Record, Idx));
854 MD->setInstanceMethod(Record[Idx++]);
855 MD->setVariadic(Record[Idx++]);
856 MD->setPropertyAccessor(Record[Idx++]);
857 MD->setDefined(Record[Idx++]);
858 MD->IsOverriding = Record[Idx++];
859 MD->HasSkippedBody = Record[Idx++];
861 MD->IsRedeclaration = Record[Idx++];
862 MD->HasRedeclaration = Record[Idx++];
865 ReadDeclAs<ObjCMethodDecl>(Record, Idx));
867 MD->setDeclImplementation((ObjCMethodDecl::ImplementationControl)Record[Idx++]);
868 MD->setObjCDeclQualifier((Decl::ObjCDeclQualifier)Record[Idx++]);
869 MD->SetRelatedResultType(Record[Idx++]);
870 MD->setReturnType(Reader.readType(F, Record, Idx));
871 MD->setReturnTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
872 MD->DeclEndLoc = ReadSourceLocation(Record, Idx);
873 unsigned NumParams = Record[Idx++];
877 Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));
879 MD->SelLocsKind = Record[Idx++];
880 unsigned NumStoredSelLocs = Record[Idx++];
884 SelLocs.push_back(ReadSourceLocation(Record, Idx));
892 D->Variance = Record[Idx++];
893 D->Index = Record[Idx++];
894 D->VarianceLoc = ReadSourceLocation(Record, Idx);
895 D->ColonLoc = ReadSourceLocation(Record, Idx);
900 CD->setAtStartLoc(ReadSourceLocation(Record, Idx));
901 CD->setAtEndRange(ReadSourceRange(Record, Idx));
905 unsigned numParams = Record[Idx++];
912 auto typeParam = ReadDeclAs<ObjCTypeParamDecl>(Record, Idx);
919 SourceLocation lAngleLoc = ReadSourceLocation(Record, Idx);
920 SourceLocation rAngleLoc = ReadSourceLocation(Record, Idx);
929 TypeIDForTypeDecl = Reader.getGlobalTypeID(F, Record[Idx++]);
933 if (Record[Idx++]) {
944 Data.SuperClassTInfo = GetTypeSourceInfo(Record, Idx);
946 Data.EndLoc = ReadSourceLocation(Record, Idx);
947 Data.HasDesignatedInitializers = Record[Idx++];
950 unsigned NumProtocols = Record[Idx++];
954 Protocols.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));
958 ProtoLocs.push_back(ReadSourceLocation(Record, Idx));
963 NumProtocols = Record[Idx++];
967 Protocols.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));
986 IVD->setAccessControl((ObjCIvarDecl::AccessControl)Record[Idx++]);
989 bool synth = Record[Idx++];
998 if (Record[Idx++]) {
1006 unsigned NumProtoRefs = Record[Idx++];
1010 ProtoRefs.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));
1014 ProtoLocs.push_back(ReadSourceLocation(Record, Idx));
1031 CD->setCategoryNameLoc(ReadSourceLocation(Record, Idx));
1032 CD->setIvarLBraceLoc(ReadSourceLocation(Record, Idx));
1033 CD->setIvarRBraceLoc(ReadSourceLocation(Record, Idx));
1040 CD->ClassInterface = ReadDeclAs<ObjCInterfaceDecl>(Record, Idx);
1042 unsigned NumProtoRefs = Record[Idx++];
1046 ProtoRefs.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));
1050 ProtoLocs.push_back(ReadSourceLocation(Record, Idx));
1057 CAD->setClassInterface(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));
1062 D->setAtLoc(ReadSourceLocation(Record, Idx));
1063 D->setLParenLoc(ReadSourceLocation(Record, Idx));
1064 QualType T = Reader.readType(F, Record, Idx);
1065 TypeSourceInfo *TSI = GetTypeSourceInfo(Record, Idx);
1068 (ObjCPropertyDecl::PropertyAttributeKind)Record[Idx++]);
1070 (ObjCPropertyDecl::PropertyAttributeKind)Record[Idx++]);
1072 (ObjCPropertyDecl::PropertyControl)Record[Idx++]);
1073 D->setGetterName(Reader.ReadDeclarationName(F,Record, Idx).getObjCSelector());
1074 D->setSetterName(Reader.ReadDeclarationName(F,Record, Idx).getObjCSelector());
1075 D->setGetterMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx));
1076 D->setSetterMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx));
1077 D->setPropertyIvarDecl(ReadDeclAs<ObjCIvarDecl>(Record, Idx));
1082 D->setClassInterface(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));
1087 D->setIdentifier(Reader.GetIdentifierInfo(F, Record, Idx));
1088 D->CategoryNameLoc = ReadSourceLocation(Record, Idx);
1093 D->setSuperClass(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));
1094 D->SuperLoc = ReadSourceLocation(Record, Idx);
1095 D->setIvarLBraceLoc(ReadSourceLocation(Record, Idx));
1096 D->setIvarRBraceLoc(ReadSourceLocation(Record, Idx));
1097 D->setHasNonZeroConstructors(Record[Idx++]);
1098 D->setHasDestructors(Record[Idx++]);
1099 D->NumIvarInitializers = Record[Idx++];
1101 D->IvarInitializers = Reader.ReadCXXCtorInitializersRef(F, Record, Idx);
1106 D->setAtLoc(ReadSourceLocation(Record, Idx));
1107 D->setPropertyDecl(ReadDeclAs<ObjCPropertyDecl>(Record, Idx));
1108 D->PropertyIvarDecl = ReadDeclAs<ObjCIvarDecl>(Record, Idx);
1109 D->IvarLoc = ReadSourceLocation(Record, Idx);
1116 FD->Mutable = Record[Idx++];
1117 if (int BitWidthOrInitializer = Record[Idx++]) {
1123 Reader.readType(F, Record, Idx).getAsOpaquePtr());
1129 if (FieldDecl *Tmpl = ReadDeclAs<FieldDecl>(Record, Idx))
1137 PD->GetterId = Reader.GetIdentifierInfo(F, Record, Idx);
1138 PD->SetterId = Reader.GetIdentifierInfo(F, Record, Idx);
1144 FD->ChainingSize = Record[Idx++];
1149 FD->Chaining[I] = ReadDeclAs<NamedDecl>(Record, Idx);
1158 VD->VarDeclBits.SClass = (StorageClass)Record[Idx++];
1159 VD->VarDeclBits.TSCSpec = Record[Idx++];
1160 VD->VarDeclBits.InitStyle = Record[Idx++];
1162 VD->NonParmVarDeclBits.ExceptionVar = Record[Idx++];
1163 VD->NonParmVarDeclBits.NRVOVariable = Record[Idx++];
1164 VD->NonParmVarDeclBits.CXXForRangeDecl = Record[Idx++];
1165 VD->NonParmVarDeclBits.ARCPseudoStrong = Record[Idx++];
1166 VD->NonParmVarDeclBits.IsConstexpr = Record[Idx++];
1167 VD->NonParmVarDeclBits.IsInitCapture = Record[Idx++];
1168 VD->NonParmVarDeclBits.PreviousDeclInSameBlockScope = Record[Idx++];
1170 Linkage VarLinkage = Linkage(Record[Idx++]);
1178 if (uint64_t Val = Record[Idx++]) {
1190 switch ((VarKind)Record[Idx++]) {
1200 VD->setDescribedVarTemplate(ReadDeclAs<VarTemplateDecl>(Record, Idx));
1203 VarDecl *Tmpl = ReadDeclAs<VarDecl>(Record, Idx);
1204 TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++];
1205 SourceLocation POI = ReadSourceLocation(Record, Idx);
1221 unsigned isObjCMethodParam = Record[Idx++];
1222 unsigned scopeDepth = Record[Idx++];
1223 unsigned scopeIndex = Record[Idx++];
1224 unsigned declQualifier = Record[Idx++];
1232 PD->ParmVarDeclBits.IsKNRPromoted = Record[Idx++];
1233 PD->ParmVarDeclBits.HasInheritedDefaultArg = Record[Idx++];
1234 if (Record[Idx++]) // hasUninstantiatedDefaultArg.
1244 AD->setRParenLoc(ReadSourceLocation(Record, Idx));
1250 BD->setSignatureAsWritten(GetTypeSourceInfo(Record, Idx));
1251 unsigned NumParams = Record[Idx++];
1255 Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));
1258 Record[Idx++]);
1259 BD->setBlockMissingReturnType(Record[Idx++]);
1260 BD->setIsConversionFromLambda(Record[Idx++]);
1262 bool capturesCXXThis = Record[Idx++];
1263 unsigned numCaptures = Record[Idx++];
1267 VarDecl *decl = ReadDeclAs<VarDecl>(Record, Idx);
1268 unsigned flags = Record[Idx++];
1280 unsigned ContextParamPos = Record[Idx++];
1281 CD->setNothrow(Record[Idx++] != 0);
1285 CD->setParam(I, ReadDeclAs<ImplicitParamDecl>(Record, Idx));
1287 CD->setContextParam(I, ReadDeclAs<ImplicitParamDecl>(Record, Idx));
1293 D->setLanguage((LinkageSpecDecl::LanguageIDs)Record[Idx++]);
1294 D->setExternLoc(ReadSourceLocation(Record, Idx));
1295 D->setRBraceLoc(ReadSourceLocation(Record, Idx));
1300 D->setLocStart(ReadSourceLocation(Record, Idx));
1306 D->setInline(Record[Idx++]);
1307 D->LocStart = ReadSourceLocation(Record, Idx);
1308 D->RBraceLoc = ReadSourceLocation(Record, Idx);
1316 AnonNamespace = ReadDeclID(Record, Idx);
1338 D->NamespaceLoc = ReadSourceLocation(Record, Idx);
1339 D->IdentLoc = ReadSourceLocation(Record, Idx);
1340 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1341 D->Namespace = ReadDeclAs<NamedDecl>(Record, Idx);
1347 D->setUsingLoc(ReadSourceLocation(Record, Idx));
1348 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1349 ReadDeclarationNameLoc(D->DNLoc, D->getDeclName(), Record, Idx);
1350 D->FirstUsingShadow.setPointer(ReadDeclAs<UsingShadowDecl>(Record, Idx));
1351 D->setTypename(Record[Idx++]);
1352 if (NamedDecl *Pattern = ReadDeclAs<NamedDecl>(Record, Idx))
1360 D->setTargetDecl(ReadDeclAs<NamedDecl>(Record, Idx));
1361 D->UsingOrNextShadow = ReadDeclAs<NamedDecl>(Record, Idx);
1362 UsingShadowDecl *Pattern = ReadDeclAs<UsingShadowDecl>(Record, Idx);
1370 D->UsingLoc = ReadSourceLocation(Record, Idx);
1371 D->NamespaceLoc = ReadSourceLocation(Record, Idx);
1372 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1373 D->NominatedNamespace = ReadDeclAs<NamedDecl>(Record, Idx);
1374 D->CommonAncestor = ReadDeclAs<DeclContext>(Record, Idx);
1379 D->setUsingLoc(ReadSourceLocation(Record, Idx));
1380 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1381 ReadDeclarationNameLoc(D->DNLoc, D->getDeclName(), Record, Idx);
1388 D->TypenameLocation = ReadSourceLocation(Record, Idx);
1389 D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1395 const RecordData &Record, unsigned &Idx) {
1397 Data.UserDeclaredConstructor = Record[Idx++];
1398 Data.UserDeclaredSpecialMembers = Record[Idx++];
1399 Data.Aggregate = Record[Idx++];
1400 Data.PlainOldData = Record[Idx++];
1401 Data.Empty = Record[Idx++];
1402 Data.Polymorphic = Record[Idx++];
1403 Data.Abstract = Record[Idx++];
1404 Data.IsStandardLayout = Record[Idx++];
1405 Data.HasNoNonEmptyBases = Record[Idx++];
1406 Data.HasPrivateFields = Record[Idx++];
1407 Data.HasProtectedFields = Record[Idx++];
1408 Data.HasPublicFields = Record[Idx++];
1409 Data.HasMutableFields = Record[Idx++];
1410 Data.HasVariantMembers = Record[Idx++];
1411 Data.HasOnlyCMembers = Record[Idx++];
1412 Data.HasInClassInitializer = Record[Idx++];
1413 Data.HasUninitializedReferenceMember = Record[Idx++];
1414 Data.NeedOverloadResolutionForMoveConstructor = Record[Idx++];
1415 Data.NeedOverloadResolutionForMoveAssignment = Record[Idx++];
1416 Data.NeedOverloadResolutionForDestructor = Record[Idx++];
1417 Data.DefaultedMoveConstructorIsDeleted = Record[Idx++];
1418 Data.DefaultedMoveAssignmentIsDeleted = Record[Idx++];
1419 Data.DefaultedDestructorIsDeleted = Record[Idx++];
1420 Data.HasTrivialSpecialMembers = Record[Idx++];
1421 Data.DeclaredNonTrivialSpecialMembers = Record[Idx++];
1422 Data.HasIrrelevantDestructor = Record[Idx++];
1423 Data.HasConstexprNonCopyMoveConstructor = Record[Idx++];
1424 Data.DefaultedDefaultConstructorIsConstexpr = Record[Idx++];
1425 Data.HasConstexprDefaultConstructor = Record[Idx++];
1426 Data.HasNonLiteralTypeFieldsOrBases = Record[Idx++];
1427 Data.ComputedVisibleConversions = Record[Idx++];
1428 Data.UserProvidedDefaultConstructor = Record[Idx++];
1429 Data.DeclaredSpecialMembers = Record[Idx++];
1430 Data.ImplicitCopyConstructorHasConstParam = Record[Idx++];
1431 Data.ImplicitCopyAssignmentHasConstParam = Record[Idx++];
1432 Data.HasDeclaredCopyConstructorWithConstParam = Record[Idx++];
1433 Data.HasDeclaredCopyAssignmentWithConstParam = Record[Idx++];
1435 Data.NumBases = Record[Idx++];
1437 Data.Bases = Reader.readCXXBaseSpecifiers(F, Record, Idx);
1438 Data.NumVBases = Record[Idx++];
1440 Data.VBases = Reader.readCXXBaseSpecifiers(F, Record, Idx);
1442 Reader.ReadUnresolvedSet(F, Data.Conversions, Record, Idx);
1443 Reader.ReadUnresolvedSet(F, Data.VisibleConversions, Record, Idx);
1445 Data.FirstFriend = ReadDeclID(Record, Idx);
1451 Lambda.Dependent = Record[Idx++];
1452 Lambda.IsGenericLambda = Record[Idx++];
1453 Lambda.CaptureDefault = Record[Idx++];
1454 Lambda.NumCaptures = Record[Idx++];
1455 Lambda.NumExplicitCaptures = Record[Idx++];
1456 Lambda.ManglingNumber = Record[Idx++];
1457 Lambda.ContextDecl = ReadDecl(Record, Idx);
1461 Lambda.MethodTyInfo = GetTypeSourceInfo(Record, Idx);
1463 SourceLocation Loc = ReadSourceLocation(Record, Idx);
1464 bool IsImplicit = Record[Idx++];
1465 LambdaCaptureKind Kind = static_cast<LambdaCaptureKind>(Record[Idx++]);
1473 VarDecl *Var = ReadDeclAs<VarDecl>(Record, Idx);
1474 SourceLocation EllipsisLoc = ReadSourceLocation(Record, Idx);
1592 bool IsLambda = Record[Idx++];
1599 ReadCXXDefinitionData(*DD, Record, Idx);
1601 // We might already have a definition for this record. This can happen either
1602 // because we're reading an update record, or because we've already done some
1615 // If this is not the first declaration or is an update record, we can have
1633 switch ((CXXRecKind)Record[Idx++]) {
1641 ClassTemplateDecl *Template = ReadDeclAs<ClassTemplateDecl>(Record, Idx);
1655 CXXRecordDecl *RD = ReadDeclAs<CXXRecordDecl>(Record, Idx);
1656 TemplateSpecializationKind TSK = (TemplateSpecializationKind)Record[Idx++];
1657 SourceLocation POI = ReadSourceLocation(Record, Idx);
1666 bool WasDefinition = Record[Idx++];
1676 DeclID KeyFn = ReadDeclID(Record, Idx);
1680 // record or similar for that case.
1690 unsigned NumOverridenMethods = Record[Idx++];
1695 if (CXXMethodDecl *MD = ReadDeclAs<CXXMethodDecl>(Record, Idx))
1708 if (auto *CD = ReadDeclAs<CXXConstructorDecl>(Record, Idx))
1711 D->IsExplicitSpecified = Record[Idx++];
1717 if (auto *OperatorDelete = ReadDeclAs<FunctionDecl>(Record, Idx)) {
1727 D->IsExplicitSpecified = Record[Idx++];
1732 D->ImportedAndComplete.setPointer(readModule(Record, Idx));
1733 D->ImportedAndComplete.setInt(Record[Idx++]);
1735 for (unsigned I = 0, N = Record.back(); I != N; ++I)
1736 StoredLocs[I] = ReadSourceLocation(Record, Idx);
1742 D->setColonLoc(ReadSourceLocation(Record, Idx));
1747 if (Record[Idx++]) // hasFriendDecl
1748 D->Friend = ReadDeclAs<NamedDecl>(Record, Idx);
1750 D->Friend = GetTypeSourceInfo(Record, Idx);
1752 D->getTPLists()[i] = Reader.ReadTemplateParameterList(F, Record, Idx);
1753 D->NextFriend = ReadDeclID(Record, Idx);
1754 D->UnsupportedFriend = (Record[Idx++] != 0);
1755 D->FriendLoc = ReadSourceLocation(Record, Idx);
1760 unsigned NumParams = Record[Idx++];
1764 D->Params[i] = Reader.ReadTemplateParameterList(F, Record, Idx);
1765 if (Record[Idx++]) // HasFriendDecl
1766 D->Friend = ReadDeclAs<NamedDecl>(Record, Idx);
1768 D->Friend = GetTypeSourceInfo(Record, Idx);
1769 D->FriendLoc = ReadSourceLocation(Record, Idx);
1775 DeclID PatternID = ReadDeclID(Record, Idx);
1778 = Reader.ReadTemplateParameterList(F, Record, Idx);
1801 = ReadDeclAs<RedeclarableTemplateDecl>(Record, Idx)) {
1805 if (Record[Idx++])
1811 D->IdentifierNamespace = Record[Idx++];
1893 if (Decl *InstD = ReadDecl(Record, Idx)) {
1898 Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);
1913 Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx,
1917 D->PointOfInstantiation = ReadSourceLocation(Record, Idx);
1918 D->SpecializationKind = (TemplateSpecializationKind)Record[Idx++];
1920 bool writtenAsCanonicalDecl = Record[Idx++];
1922 ClassTemplateDecl *CanonPattern = ReadDeclAs<ClassTemplateDecl>(Record,Idx);
1952 if (TypeSourceInfo *TyInfo = GetTypeSourceInfo(Record, Idx)) {
1956 ExplicitInfo->ExternLoc = ReadSourceLocation(Record, Idx);
1957 ExplicitInfo->TemplateKeywordLoc = ReadSourceLocation(Record, Idx);
1968 D->TemplateParams = Reader.ReadTemplateParameterList(F, Record, Idx);
1969 D->ArgsAsWritten = Reader.ReadASTTemplateArgumentListInfo(F, Record, Idx);
1974 ReadDeclAs<ClassTemplatePartialSpecializationDecl>(Record, Idx));
1975 D->InstantiatedFromMember.setInt(Record[Idx++]);
1982 D->Specialization = ReadDeclAs<CXXMethodDecl>(Record, Idx);
2012 if (Decl *InstD = ReadDecl(Record, Idx)) {
2017 Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);
2031 if (TypeSourceInfo *TyInfo = GetTypeSourceInfo(Record, Idx)) {
2035 ExplicitInfo->ExternLoc = ReadSourceLocation(Record, Idx);
2036 ExplicitInfo->TemplateKeywordLoc = ReadSourceLocation(Record, Idx);
2041 Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx,
2045 D->PointOfInstantiation = ReadSourceLocation(Record, Idx);
2046 D->SpecializationKind = (TemplateSpecializationKind)Record[Idx++];
2048 bool writtenAsCanonicalDecl = Record[Idx++];
2050 VarTemplateDecl *CanonPattern = ReadDeclAs<VarTemplateDecl>(Record, Idx);
2075 D->TemplateParams = Reader.ReadTemplateParameterList(F, Record, Idx);
2076 D->ArgsAsWritten = Reader.ReadASTTemplateArgumentListInfo(F, Record, Idx);
2081 ReadDeclAs<VarTemplatePartialSpecializationDecl>(Record, Idx));
2082 D->InstantiatedFromMember.setInt(Record[Idx++]);
2089 D->setDeclaredWithTypename(Record[Idx++]);
2091 if (Record[Idx++])
2092 Record, Idx));
2098 D->setDepth(Record[Idx++]);
2099 D->setPosition(Record[Idx++]);
2103 Data[2*I] = Reader.readType(F, Record, Idx).getAsOpaquePtr();
2104 Data[2*I + 1] = GetTypeSourceInfo(Record, Idx);
2108 D->ParameterPack = Record[Idx++];
2109 if (Record[Idx++])
2117 D->setDepth(Record[Idx++]);
2118 D->setPosition(Record[Idx++]);
2123 Data[I] = Reader.ReadTemplateParameterList(F, Record, Idx);
2126 D->ParameterPack = Record[Idx++];
2127 if (Record[Idx++])
2129 Reader.ReadTemplateArgumentLoc(F, Record, Idx));
2140 D->AssertExprAndFailed.setInt(Record[Idx++]);
2142 D->RParenLoc = ReadSourceLocation(Record, Idx);
2151 uint64_t LexicalOffset = Record[Idx++];
2152 uint64_t VisibleOffset = Record[Idx++];
2159 DeclID FirstDeclID = ReadDeclID(Record, Idx);
2173 } else if (unsigned N = Record[Idx++]) {
2185 MergeWith = ReadDecl(Record, Idx/*, MergeWith*/);
2187 RedeclOffset = Record[Idx++];
2191 (void)ReadDecl(Record, Idx);
2366 const RecordData &Record, unsigned &Idx) {
2367 for (unsigned i = 0, e = Record[Idx++]; i != e; ++i) {
2369 attr::Kind Kind = (attr::Kind)Record[Idx++];
2370 SourceRange Range = ReadSourceRange(F, Record, Idx);
2681 // record, but we've not yet loaded that update record. In this case, we
2683 // we load the update record.
2711 // Record that we had a typedef name for linkage whether or not we merge
3102 // Note that we are loading a declaration record.
3106 RecordData Record;
3109 ASTDeclReader Reader(*this, *Loc.F, ID, RawLocation, Record,Idx);
3112 switch ((DeclCode)DeclsCursor.readRecord(Code, Record)) {
3115 llvm_unreachable("Record cannot be de-serialized with ReadDeclRecord");
3180 D = FriendDecl::CreateDeserialized(Context, ID, Record[Idx++]);
3216 D = NonTypeTemplateParmDecl::CreateDeserialized(Context, ID, Record[Idx++]);
3223 Record[Idx++]);
3289 D = CapturedDecl::CreateDeserialized(Context, ID, Record[Idx++]);
3292 Error("attempt to read a C++ base-specifier record as a declaration");
3295 Error("attempt to read a C++ ctor initializer record as a declaration");
3298 // Note: last entry of the ImportDecl record is the number of stored source
3300 D = ImportDecl::CreateDeserialized(Context, ID, Record.back());
3303 D = OMPThreadPrivateDecl::CreateDeserialized(Context, ID, Record[Idx++]);
3332 assert(Idx == Record.size());
3368 // If this is the case, read the record containing the updates from each file
3382 RecordData Record;
3384 unsigned RecCode = Cursor.readRecord(Code, Record);
3386 assert(RecCode == DECL_UPDATES && "Expected DECL_UPDATES record!");
3389 ASTDeclReader Reader(*this, *F, ID, 0, Record, Idx);
3390 Reader.UpdateDecl(D, *F, Record);
3426 RecordData Record;
3428 unsigned RecCode = Cursor.readRecord(Code, Record);
3430 assert(RecCode == LOCAL_REDECLARATIONS && "expected LOCAL_REDECLARATIONS record!");
3435 for (unsigned I = 0, N = Record.size(); I != N; ++I) {
3436 auto *D = GetLocalDecl(*M, Record[N - I - 1]);
3481 // Record this category.
3584 const RecordData &Record) {
3585 while (Idx < Record.size()) {
3586 switch ((DeclUpdateKind)Record[Idx++]) {
3589 // FIXME: If we also have an update record for instantiating the
3591 Decl *MD = Reader.ReadDecl(ModuleFile, Record, Idx);
3592 assert(MD && "couldn't read decl from update record");
3601 (void)Reader.ReadDecl(ModuleFile, Record, Idx);
3606 = Reader.ReadDeclAs<NamespaceDecl>(ModuleFile, Record, Idx);
3623 Reader.ReadSourceLocation(ModuleFile, Record, Idx));
3630 // It's safe to stop now because this update record is always last.
3634 if (Record[Idx++]) {
3642 FD->setInnerLocStart(Reader.ReadSourceLocation(ModuleFile, Record, Idx));
3644 CD->NumCtorInitializers = Record[Idx++];
3647 Reader.ReadCXXCtorInitializersRef(F, Record, Idx);
3652 assert(Idx == Record.size() && "lazy body must be last");
3665 uint64_t LexicalOffset = Record[Idx++];
3672 auto TSK = (TemplateSpecializationKind)Record[Idx++];
3673 SourceLocation POI = Reader.ReadSourceLocation(ModuleFile, Record, Idx);
3684 if (Record[Idx++]) {
3686 ReadDeclAs<ClassTemplatePartialSpecializationDecl>(Record, Idx);
3688 Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);
3700 RD->setTagKind((TagTypeKind)Record[Idx++]);
3701 RD->setLocation(Reader.ReadSourceLocation(ModuleFile, Record, Idx));
3702 RD->setLocStart(Reader.ReadSourceLocation(ModuleFile, Record, Idx));
3703 RD->setRBraceLoc(Reader.ReadSourceLocation(ModuleFile, Record, Idx));
3705 if (Record[Idx++]) {
3707 Reader.ReadAttributes(F, Attrs, Record, Idx);
3715 // record.
3716 auto *Del = Reader.ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx);
3727 Reader.readExceptionSpec(ModuleFile, ExceptionStorage, ESI, Record, Idx);
3749 QualType DeducedResultType = Reader.readType(ModuleFile, Record, Idx);
3768 Reader.Context.setManglingNumber(cast<NamedDecl>(D), Record[Idx++]);
3772 Reader.Context.setStaticLocalNumber(cast<VarDecl>(D), Record[Idx++]);
3777 Reader.Context, ReadSourceRange(Record, Idx)));
3781 unsigned SubmoduleID = readSubmoduleID(Record, Idx);
3807 Reader.ReadAttributes(F, Attrs, Record, Idx);