Home | History | Annotate | Download | only in Serialization

Lines Matching refs:Idx

35     unsigned &Idx;
83 const ASTReader::RecordData &Record, unsigned &Idx)
84 : Reader(Reader), F(F), DeclsCursor(Cursor), Record(Record), Idx(Idx) { }
112 SourceLocation TemplateKWLoc = ReadSourceLocation(Record, Idx);
114 ArgInfo.setLAngleLoc(ReadSourceLocation(Record, Idx));
115 ArgInfo.setRAngleLoc(ReadSourceLocation(Record, Idx));
118 Reader.ReadTemplateArgumentLoc(F, Record, Idx));
123 assert(Idx == NumStmtFields && "Incorrect statement field count");
128 S->setSemiLoc(ReadSourceLocation(Record, Idx));
129 S->HasLeadingEmptyMacro = Record[Idx++];
135 unsigned NumStmts = Record[Idx++];
139 S->LBraceLoc = ReadSourceLocation(Record, Idx);
140 S->RBraceLoc = ReadSourceLocation(Record, Idx);
145 Reader.RecordSwitchCaseID(S, Record[Idx++]);
146 S->setKeywordLoc(ReadSourceLocation(Record, Idx));
147 S->setColonLoc(ReadSourceLocation(Record, Idx));
155 S->setEllipsisLoc(ReadSourceLocation(Record, Idx));
165 LabelDecl *LD = ReadDeclAs<LabelDecl>(Record, Idx);
169 S->setIdentLoc(ReadSourceLocation(Record, Idx));
174 uint64_t NumAttrs = Record[Idx++];
176 Reader.ReadAttributes(F, Attrs, Record, Idx);
182 S->AttrLoc = ReadSourceLocation(Record, Idx);
187 S->setConstexpr(Record[Idx++]);
190 ReadDeclAs<VarDecl>(Record, Idx));
194 S->setIfLoc(ReadSourceLocation(Record, Idx));
195 S->setElseLoc(ReadSourceLocation(Record, Idx));
202 ReadDeclAs<VarDecl>(Record, Idx));
205 S->setSwitchLoc(ReadSourceLocation(Record, Idx));
206 if (Record[Idx++])
210 for (unsigned N = Record.size(); Idx != N; ++Idx) {
211 SwitchCase *SC = Reader.getSwitchCaseWithID(Record[Idx]);
224 ReadDeclAs<VarDecl>(Record, Idx));
228 S->setWhileLoc(ReadSourceLocation(Record, Idx));
235 S->setDoLoc(ReadSourceLocation(Record, Idx));
236 S->setWhileLoc(ReadSourceLocation(Record, Idx));
237 S->setRParenLoc(ReadSourceLocation(Record, Idx));
245 ReadDeclAs<VarDecl>(Record, Idx));
248 S->setForLoc(ReadSourceLocation(Record, Idx));
249 S->setLParenLoc(ReadSourceLocation(Record, Idx));
250 S->setRParenLoc(ReadSourceLocation(Record, Idx));
255 S->setLabel(ReadDeclAs<LabelDecl>(Record, Idx));
256 S->setGotoLoc(ReadSourceLocation(Record, Idx));
257 S->setLabelLoc(ReadSourceLocation(Record, Idx));
262 S->setGotoLoc(ReadSourceLocation(Record, Idx));
263 S->setStarLoc(ReadSourceLocation(Record, Idx));
269 S->setContinueLoc(ReadSourceLocation(Record, Idx));
274 S->setBreakLoc(ReadSourceLocation(Record, Idx));
280 S->setReturnLoc(ReadSourceLocation(Record, Idx));
281 S->setNRVOCandidate(ReadDeclAs<VarDecl>(Record, Idx));
286 S->setStartLoc(ReadSourceLocation(Record, Idx));
287 S->setEndLoc(ReadSourceLocation(Record, Idx));
289 if (Idx + 1 == Record.size()) {
291 S->setDeclGroup(DeclGroupRef(ReadDecl(Record, Idx)));
294 Decls.reserve(Record.size() - Idx);
295 for (unsigned N = Record.size(); Idx != N; )
296 Decls.push_back(ReadDecl(Record, Idx));
305 S->NumOutputs = Record[Idx++];
306 S->NumInputs = Record[Idx++];
307 S->NumClobbers = Record[Idx++];
308 S->setAsmLoc(ReadSourceLocation(Record, Idx));
309 S->setVolatile(Record[Idx++]);
310 S->setSimple(Record[Idx++]);
315 S->setRParenLoc(ReadSourceLocation(Record, Idx));
327 Names.push_back(Reader.GetIdentifierInfo(F, Record, Idx));
345 S->LBraceLoc = ReadSourceLocation(Record, Idx);
346 S->EndLoc = ReadSourceLocation(Record, Idx);
347 S->NumAsmToks = Record[Idx++];
348 std::string AsmStr = ReadString(Record, Idx);
354 AsmToks.push_back(ReadToken(Record, Idx));
366 ClobbersData.push_back(ReadString(Record, Idx));
380 ConstraintsData.push_back(ReadString(Record, Idx));
410 ++Idx;
411 S->setCapturedDecl(ReadDeclAs<CapturedDecl>(Record, Idx));
412 S->setCapturedRegionKind(static_cast<CapturedRegionKind>(Record[Idx++]));
413 S->setCapturedRecordDecl(ReadDeclAs<RecordDecl>(Record, Idx));
427 I.VarAndKind.setPointer(ReadDeclAs<VarDecl>(Record, Idx));
429 .setInt(static_cast<CapturedStmt::VariableCaptureKind>(Record[Idx++]));
430 I.Loc = ReadSourceLocation(Record, Idx);
436 E->setType(Reader.readType(F, Record, Idx));
437 E->setTypeDependent(Record[Idx++]);
438 E->setValueDependent(Record[Idx++]);
439 E->setInstantiationDependent(Record[Idx++]);
440 E->ExprBits.ContainsUnexpandedParameterPack = Record[Idx++];
441 E->setValueKind(static_cast<ExprValueKind>(Record[Idx++]));
442 E->setObjectKind(static_cast<ExprObjectKind>(Record[Idx++]));
443 assert(Idx == NumExprFields && "Incorrect expression field count");
448 E->setLocation(ReadSourceLocation(Record, Idx));
449 E->Type = (PredefinedExpr::IdentType)Record[Idx++];
456 E->DeclRefExprBits.HasQualifier = Record[Idx++];
457 E->DeclRefExprBits.HasFoundDecl = Record[Idx++];
458 E->DeclRefExprBits.HasTemplateKWAndArgsInfo = Record[Idx++];
459 E->DeclRefExprBits.HadMultipleCandidates = Record[Idx++];
460 E->DeclRefExprBits.RefersToEnclosingVariableOrCapture = Record[Idx++];
463 NumTemplateArgs = Record[Idx++];
468 Reader.ReadNestedNameSpecifierLoc(F, Record, Idx));
471 *E->getTrailingObjects<NamedDecl *>() = ReadDeclAs<NamedDecl>(Record, Idx);
478 E->setDecl(ReadDeclAs<ValueDecl>(Record, Idx));
479 E->setLocation(ReadSourceLocation(Record, Idx));
480 ReadDeclarationNameLoc(E->DNLoc, E->getDecl()->getDeclName(), Record, Idx);
485 E->setLocation(ReadSourceLocation(Record, Idx));
486 E->setValue(Reader.getContext(), Reader.ReadAPInt(Record, Idx));
491 E->setRawSemantics(static_cast<Stmt::APFloatSemantics>(Record[Idx++]));
492 E->setExact(Record[Idx++]);
494 Reader.ReadAPFloat(Record, E->getSemantics(), Idx));
495 E->setLocation(ReadSourceLocation(Record, Idx));
505 unsigned Len = Record[Idx++];
506 assert(Record[Idx] == E->getNumConcatenated() &&
508 ++Idx;
510 static_cast<StringLiteral::StringKind>(Record[Idx++]);
511 bool isPascal = Record[Idx++];
514 SmallString<16> Str(&Record[Idx], &Record[Idx] + Len);
516 Idx += Len;
520 E->setStrTokenLoc(I, ReadSourceLocation(Record, Idx));
525 E->setValue(Record[Idx++]);
526 E->setLocation(ReadSourceLocation(Record, Idx));
527 E->setKind(static_cast<CharacterLiteral::CharacterKind>(Record[Idx++]));
532 E->setLParen(ReadSourceLocation(Record, Idx));
533 E->setRParen(ReadSourceLocation(Record, Idx));
539 unsigned NumExprs = Record[Idx++];
544 E->LParenLoc = ReadSourceLocation(Record, Idx);
545 E->RParenLoc = ReadSourceLocation(Record, Idx);
551 E->setOpcode((UnaryOperator::Opcode)Record[Idx++]);
552 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
557 assert(E->getNumComponents() == Record[Idx]);
558 ++Idx;
559 assert(E->getNumExpressions() == Record[Idx]);
560 ++Idx;
561 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
562 E->setRParenLoc(ReadSourceLocation(Record, Idx));
563 E->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
565 OffsetOfNode::Kind Kind = static_cast<OffsetOfNode::Kind>(Record[Idx++]);
566 SourceLocation Start = ReadSourceLocation(Record, Idx);
567 SourceLocation End = ReadSourceLocation(Record, Idx);
570 E->setComponent(I, OffsetOfNode(Start, Record[Idx++], End));
575 I, OffsetOfNode(Start, ReadDeclAs<FieldDecl>(Record, Idx), End));
581 OffsetOfNode(Start, Reader.GetIdentifierInfo(F, Record, Idx), End));
586 *Base = Reader.ReadCXXBaseSpecifier(F, Record, Idx);
599 E->setKind(static_cast<UnaryExprOrTypeTrait>(Record[Idx++]));
600 if (Record[Idx] == 0) {
602 ++Idx;
604 E->setArgument(GetTypeSourceInfo(Record, Idx));
606 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
607 E->setRParenLoc(ReadSourceLocation(Record, Idx));
614 E->setRBracketLoc(ReadSourceLocation(Record, Idx));
622 E->setColonLoc(ReadSourceLocation(Record, Idx));
623 E->setRBracketLoc(ReadSourceLocation(Record, Idx));
628 E->setNumArgs(Reader.getContext(), Record[Idx++]);
629 E->setRParenLoc(ReadSourceLocation(Record, Idx));
642 "It's a subclass, we must advance Idx!");
648 E->setIsaMemberLoc(ReadSourceLocation(Record, Idx));
649 E->setOpLoc(ReadSourceLocation(Record, Idx));
650 E->setArrow(Record[Idx++]);
657 E->setShouldCopy(Record[Idx++]);
662 E->LParenLoc = ReadSourceLocation(Record, Idx);
663 E->BridgeKeywordLoc = ReadSourceLocation(Record, Idx);
664 E->Kind = Record[Idx++];
669 unsigned NumBaseSpecs = Record[Idx++];
672 E->setCastKind((CastKind)Record[Idx++]);
676 *BaseSpec = Reader.ReadCXXBaseSpecifier(F, Record, Idx);
685 E->setOpcode((BinaryOperator::Opcode)Record[Idx++]);
686 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
687 E->setFPContractable((bool)Record[Idx++]);
692 E->setComputationLHSType(Reader.readType(F, Record, Idx));
693 E->setComputationResultType(Reader.readType(F, Record, Idx));
701 E->QuestionLoc = ReadSourceLocation(Record, Idx);
702 E->ColonLoc = ReadSourceLocation(Record, Idx);
713 E->QuestionLoc = ReadSourceLocation(Record, Idx);
714 E->ColonLoc = ReadSourceLocation(Record, Idx);
723 E->setTypeInfoAsWritten(GetTypeSourceInfo(Record, Idx));
728 E->setLParenLoc(ReadSourceLocation(Record, Idx));
729 E->setRParenLoc(ReadSourceLocation(Record, Idx));
734 E->setLParenLoc(ReadSourceLocation(Record, Idx));
735 E->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
737 E->setFileScope(Record[Idx++]);
743 E->setAccessor(Reader.GetIdentifierInfo(F, Record, Idx));
744 E->setAccessorLoc(ReadSourceLocation(Record, Idx));
751 E->setLBraceLoc(ReadSourceLocation(Record, Idx));
752 E->setRBraceLoc(ReadSourceLocation(Record, Idx));
753 bool isArrayFiller = Record[Idx++];
759 E->ArrayFillerOrUnionFieldInit = ReadDeclAs<FieldDecl>(Record, Idx);
760 E->sawArrayRangeDesignator(Record[Idx++]);
761 unsigned NumInits = Record[Idx++];
778 unsigned NumSubExprs = Record[Idx++];
782 E->setEqualOrColonLoc(ReadSourceLocation(Record, Idx));
783 E->setGNUSyntax(Record[Idx++]);
786 while (Idx < Record.size()) {
787 switch ((DesignatorTypes)Record[Idx++]) {
789 FieldDecl *Field = ReadDeclAs<FieldDecl>(Record, Idx);
791 = ReadSourceLocation(Record, Idx);
793 = ReadSourceLocation(Record, Idx);
801 const IdentifierInfo *Name = Reader.GetIdentifierInfo(F, Record, Idx);
803 = ReadSourceLocation(Record, Idx);
805 = ReadSourceLocation(Record, Idx);
811 unsigned Index = Record[Idx++];
813 = ReadSourceLocation(Record, Idx);
815 = ReadSourceLocation(Record, Idx);
821 unsigned Index = Record[Idx++];
823 = ReadSourceLocation(Record, Idx);
825 = ReadSourceLocation(Record, Idx);
827 = ReadSourceLocation(Record, Idx);
855 E->setWrittenTypeInfo(GetTypeSourceInfo(Record, Idx));
856 E->setBuiltinLoc(ReadSourceLocation(Record, Idx));
857 E->setRParenLoc(ReadSourceLocation(Record, Idx));
858 E->setIsMicrosoftABI(Record[Idx++]);
863 E->setAmpAmpLoc(ReadSourceLocation(Record, Idx));
864 E->setLabelLoc(ReadSourceLocation(Record, Idx));
865 E->setLabel(ReadDeclAs<LabelDecl>(Record, Idx));
870 E->setLParenLoc(ReadSourceLocation(Record, Idx));
871 E->setRParenLoc(ReadSourceLocation(Record, Idx));
880 E->setBuiltinLoc(ReadSourceLocation(Record, Idx));
881 E->setRParenLoc(ReadSourceLocation(Record, Idx));
882 E->setIsConditionTrue(Record[Idx++]);
887 E->setTokenLocation(ReadSourceLocation(Record, Idx));
893 unsigned NumExprs = Record[Idx++];
897 E->setBuiltinLoc(ReadSourceLocation(Record, Idx));
898 E->setRParenLoc(ReadSourceLocation(Record, Idx));
903 E->BuiltinLoc = ReadSourceLocation(Record, Idx);
904 E->RParenLoc = ReadSourceLocation(Record, Idx);
905 E->TInfo = GetTypeSourceInfo(Record, Idx);
911 E->setBlockDecl(ReadDeclAs<BlockDecl>(Record, Idx));
916 E->NumAssocs = Record[Idx++];
923 E->AssocTypes[I] = GetTypeSourceInfo(Record, Idx);
926 E->ResultIndex = Record[Idx++];
928 E->GenericLoc = ReadSourceLocation(Record, Idx);
929 E->DefaultLoc = ReadSourceLocation(Record, Idx);
930 E->RParenLoc = ReadSourceLocation(Record, Idx);
935 unsigned numSemanticExprs = Record[Idx++];
937 E->PseudoObjectExprBits.ResultIndex = Record[Idx++];
951 E->Op = AtomicExpr::AtomicOp(Record[Idx++]);
955 E->BuiltinLoc = ReadSourceLocation(Record, Idx);
956 E->RParenLoc = ReadSourceLocation(Record, Idx);
965 E->setAtLoc(ReadSourceLocation(Record, Idx));
972 E->BoxingMethod = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
973 E->Range = ReadSourceRange(Record, Idx);
978 unsigned NumElements = Record[Idx++];
983 E->ArrayWithObjectsMethod = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
984 E->Range = ReadSourceRange(Record, Idx);
989 unsigned NumElements = Record[Idx++];
991 bool HasPackExpansions = Record[Idx++];
1001 Expansions[I].EllipsisLoc = ReadSourceLocation(Record, Idx);
1002 Expansions[I].NumExpansionsPlusOne = Record[Idx++];
1005 E->DictWithObjectsMethod = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1006 E->Range = ReadSourceRange(Record, Idx);
1011 E->setEncodedTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
1012 E->setAtLoc(ReadSourceLocation(Record, Idx));
1013 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1018 E->setSelector(Reader.ReadSelector(F, Record, Idx));
1019 E->setAtLoc(ReadSourceLocation(Record, Idx));
1020 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1025 E->setProtocol(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));
1026 E->setAtLoc(ReadSourceLocation(Record, Idx));
1027 E->ProtoLoc = ReadSourceLocation(Record, Idx);
1028 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1033 E->setDecl(ReadDeclAs<ObjCIvarDecl>(Record, Idx));
1034 E->setLocation(ReadSourceLocation(Record, Idx));
1035 E->setOpLoc(ReadSourceLocation(Record, Idx));
1037 E->setIsArrow(Record[Idx++]);
1038 E->setIsFreeIvar(Record[Idx++]);
1043 unsigned MethodRefFlags = Record[Idx++];
1044 bool Implicit = Record[Idx++] != 0;
1046 ObjCMethodDecl *Getter = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1047 ObjCMethodDecl *Setter = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1050 E->setExplicitProperty(ReadDeclAs<ObjCPropertyDecl>(Record, Idx),
1053 E->setLocation(ReadSourceLocation(Record, Idx));
1054 E->setReceiverLocation(ReadSourceLocation(Record, Idx));
1055 switch (Record[Idx++]) {
1060 E->setSuperReceiver(Reader.readType(F, Record, Idx));
1063 E->setClassReceiver(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));
1070 E->setRBracket(ReadSourceLocation(Record, Idx));
1073 E->GetAtIndexMethodDecl = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1074 E->SetAtIndexMethodDecl = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1079 assert(Record[Idx] == E->getNumArgs());
1080 ++Idx;
1081 unsigned NumStoredSelLocs = Record[Idx++];
1082 E->SelLocsKind = Record[Idx++];
1083 E->setDelegateInitCall(Record[Idx++]);
1084 E->IsImplicit = Record[Idx++];
1086 = static_cast<ObjCMessageExpr::ReceiverKind>(Record[Idx++]);
1093 E->setClassReceiver(GetTypeSourceInfo(Record, Idx));
1098 QualType T = Reader.readType(F, Record, Idx);
1099 SourceLocation SuperLoc = ReadSourceLocation(Record, Idx);
1107 if (Record[Idx++])
1108 E->setMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx));
1110 E->setSelector(Reader.ReadSelector(F, Record, Idx));
1112 E->LBracLoc = ReadSourceLocation(Record, Idx);
1113 E->RBracLoc = ReadSourceLocation(Record, Idx);
1120 Locs[I] = ReadSourceLocation(Record, Idx);
1128 S->setForLoc(ReadSourceLocation(Record, Idx));
1129 S->setRParenLoc(ReadSourceLocation(Record, Idx));
1135 S->setCatchParamDecl(ReadDeclAs<VarDecl>(Record, Idx));
1136 S->setAtCatchLoc(ReadSourceLocation(Record, Idx));
1137 S->setRParenLoc(ReadSourceLocation(Record, Idx));
1143 S->setAtFinallyLoc(ReadSourceLocation(Record, Idx));
1149 S->setAtLoc(ReadSourceLocation(Record, Idx));
1154 assert(Record[Idx] == S->getNumCatchStmts());
1155 ++Idx;
1156 bool HasFinally = Record[Idx++];
1163 S->setAtTryLoc(ReadSourceLocation(Record, Idx));
1170 S->setAtSynchronizedLoc(ReadSourceLocation(Record, Idx));
1176 S->setThrowLoc(ReadSourceLocation(Record, Idx));
1181 E->setValue(Record[Idx++]);
1182 E->setLocation(ReadSourceLocation(Record, Idx));
1191 S->CatchLoc = ReadSourceLocation(Record, Idx);
1192 S->ExceptionDecl = ReadDeclAs<VarDecl>(Record, Idx);
1198 assert(Record[Idx] == S->getNumHandlers() && "NumStmtFields is wrong ?");
1199 ++Idx;
1200 S->TryLoc = ReadSourceLocation(Record, Idx);
1208 S->ForLoc = ReadSourceLocation(Record, Idx);
1209 S->CoawaitLoc = ReadSourceLocation(Record, Idx);
1210 S->ColonLoc = ReadSourceLocation(Record, Idx);
1211 S->RParenLoc = ReadSourceLocation(Record, Idx);
1223 S->KeywordLoc = ReadSourceLocation(Record, Idx);
1224 S->IsIfExists = Record[Idx++];
1225 S->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1226 ReadDeclarationNameInfo(S->NameInfo, Record, Idx);
1232 E->Operator = (OverloadedOperatorKind)Record[Idx++];
1233 E->Range = Reader.ReadSourceRange(F, Record, Idx);
1234 E->setFPContractable((bool)Record[Idx++]);
1239 E->NumArgs = Record[Idx++];
1244 E->setConstructor(ReadDeclAs<CXXConstructorDecl>(Record, Idx));
1245 E->setLocation(ReadSourceLocation(Record, Idx));
1246 E->setElidable(Record[Idx++]);
1247 E->setHadMultipleCandidates(Record[Idx++]);
1248 E->setListInitialization(Record[Idx++]);
1249 E->setStdInitListInitialization(Record[Idx++]);
1250 E->setRequiresZeroInitialization(Record[Idx++]);
1251 E->setConstructionKind((CXXConstructExpr::ConstructionKind)Record[Idx++]);
1252 E->ParenOrBraceRange = ReadSourceRange(Record, Idx);
1257 E->Constructor = ReadDeclAs<CXXConstructorDecl>(Record, Idx);
1258 E->Loc = ReadSourceLocation(Record, Idx);
1259 E->ConstructsVirtualBase = Record[Idx++];
1260 E->InheritedFromVirtualBase = Record[Idx++];
1265 E->Type = GetTypeSourceInfo(Record, Idx);
1270 unsigned NumCaptures = Record[Idx++];
1272 unsigned NumArrayIndexVars = Record[Idx++];
1273 E->IntroducerRange = ReadSourceRange(Record, Idx);
1274 E->CaptureDefault = static_cast<LambdaCaptureDefault>(Record[Idx++]);
1275 E->CaptureDefaultLoc = ReadSourceLocation(Record, Idx);
1276 E->ExplicitParams = Record[Idx++];
1277 E->ExplicitResultType = Record[Idx++];
1278 E->ClosingBrace = ReadSourceLocation(Record, Idx);
1290 ArrayIndexStarts[I] = Record[Idx++];
1294 ArrayIndexVars[I] = ReadDeclAs<VarDecl>(Record, Idx);
1306 SourceRange R = ReadSourceRange(Record, Idx);
1309 R = ReadSourceRange(Record, Idx);
1331 E->setLParenLoc(ReadSourceLocation(Record, Idx));
1332 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1337 E->UDSuffixLoc = ReadSourceLocation(Record, Idx);
1342 E->setValue(Record[Idx++]);
1343 E->setLocation(ReadSourceLocation(Record, Idx));
1348 E->setLocation(ReadSourceLocation(Record, Idx));
1353 E->setSourceRange(ReadSourceRange(Record, Idx));
1356 GetTypeSourceInfo(Record, Idx));
1366 E->setLocation(ReadSourceLocation(Record, Idx));
1367 E->setImplicit(Record[Idx++]);
1372 E->ThrowLoc = ReadSourceLocation(Record, Idx);
1374 E->IsThrownVariableInScope = Record[Idx++];
1379 E->Param = ReadDeclAs<ParmVarDecl>(Record, Idx);
1380 E->Loc = ReadSourceLocation(Record, Idx);
1385 E->Field = ReadDeclAs<FieldDecl>(Record, Idx);
1386 E->Loc = ReadSourceLocation(Record, Idx);
1391 E->setTemporary(Reader.ReadCXXTemporary(F, Record, Idx));
1397 E->TypeInfo = GetTypeSourceInfo(Record, Idx);
1398 E->RParenLoc = ReadSourceLocation(Record, Idx);
1403 E->GlobalNew = Record[Idx++];
1404 bool isArray = Record[Idx++];
1405 E->UsualArrayDeleteWantsSize = Record[Idx++];
1406 unsigned NumPlacementArgs = Record[Idx++];
1407 E->StoredInitializationStyle = Record[Idx++];
1408 E->setOperatorNew(ReadDeclAs<FunctionDecl>(Record, Idx));
1409 E->setOperatorDelete(ReadDeclAs<FunctionDecl>(Record, Idx));
1410 E->AllocatedTypeInfo = GetTypeSourceInfo(Record, Idx);
1411 E->TypeIdParens = ReadSourceRange(Record, Idx);
1412 E->Range = ReadSourceRange(Record, Idx);
1413 E->DirectInitRange = ReadSourceRange(Record, Idx);
1426 E->GlobalDelete = Record[Idx++];
1427 E->ArrayForm = Record[Idx++];
1428 E->ArrayFormAsWritten = Record[Idx++];
1429 E->UsualArrayDeleteWantsSize = Record[Idx++];
1430 E->OperatorDelete = ReadDeclAs<FunctionDecl>(Record, Idx);
1432 E->Loc = ReadSourceLocation(Record, Idx);
1439 E->IsArrow = Record[Idx++];
1440 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1441 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1442 E->ScopeType = GetTypeSourceInfo(Record, Idx);
1443 E->ColonColonLoc = ReadSourceLocation(Record, Idx);
1444 E->TildeLoc = ReadSourceLocation(Record, Idx);
1446 Idx);
1448 E->setDestroyedType(II, ReadSourceLocation(Record, Idx));
1450 E->setDestroyedType(GetTypeSourceInfo(Record, Idx));
1456 unsigned NumObjects = Record[Idx++];
1460 ReadDeclAs<BlockDecl>(Record, Idx);
1462 E->ExprWithCleanupsBits.CleanupsHaveSideEffects = Record[Idx++];
1470 if (Record[Idx++]) // HasTemplateKWAndArgsInfo
1474 /*NumTemplateArgs=*/Record[Idx++]);
1477 E->BaseType = Reader.readType(F, Record, Idx);
1478 E->IsArrow = Record[Idx++];
1479 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1480 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1481 E->FirstQualifierFoundInScope = ReadDeclAs<NamedDecl>(Record, Idx);
1482 ReadDeclarationNameInfo(E->MemberNameInfo, Record, Idx);
1489 if (Record[Idx++]) // HasTemplateKWAndArgsInfo
1493 /*NumTemplateArgs=*/Record[Idx++]);
1495 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1496 ReadDeclarationNameInfo(E->NameInfo, Record, Idx);
1502 assert(Record[Idx] == E->arg_size() && "Read wrong record during creation ?");
1503 ++Idx; // NumArgs;
1506 E->Type = GetTypeSourceInfo(Record, Idx);
1507 E->setLParenLoc(ReadSourceLocation(Record, Idx));
1508 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1514 if (Record[Idx++]) // HasTemplateKWAndArgsInfo
1517 /*NumTemplateArgs=*/Record[Idx++]);
1519 unsigned NumDecls = Record[Idx++];
1522 NamedDecl *D = ReadDeclAs<NamedDecl>(Record, Idx);
1523 AccessSpecifier AS = (AccessSpecifier)Record[Idx++];
1528 ReadDeclarationNameInfo(E->NameInfo, Record, Idx);
1529 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1534 E->IsArrow = Record[Idx++];
1535 E->HasUnresolvedUsing = Record[Idx++];
1537 E->BaseType = Reader.readType(F, Record, Idx);
1538 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1543 E->RequiresADL = Record[Idx++];
1544 E->Overloaded = Record[Idx++];
1545 E->NamingClass = ReadDeclAs<CXXRecordDecl>(Record, Idx);
1550 E->TypeTraitExprBits.NumArgs = Record[Idx++];
1551 E->TypeTraitExprBits.Kind = Record[Idx++];
1552 E->TypeTraitExprBits.Value = Record[Idx++];
1553 SourceRange Range = ReadSourceRange(Record, Idx);
1559 Args[I] = GetTypeSourceInfo(Record, Idx);
1564 E->ATT = (ArrayTypeTrait)Record[Idx++];
1565 E->Value = (unsigned int)Record[Idx++];
1566 SourceRange Range = ReadSourceRange(Record, Idx);
1569 E->QueriedType = GetTypeSourceInfo(Record, Idx);
1574 E->ET = (ExpressionTrait)Record[Idx++];
1575 E->Value = (bool)Record[Idx++];
1576 SourceRange Range = ReadSourceRange(Record, Idx);
1584 E->Value = (bool)Record[Idx++];
1585 E->Range = ReadSourceRange(Record, Idx);
1591 E->EllipsisLoc = ReadSourceLocation(Record, Idx);
1592 E->NumExpansions = Record[Idx++];
1598 unsigned NumPartialArgs = Record[Idx++];
1599 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1600 E->PackLoc = ReadSourceLocation(Record, Idx);
1601 E->RParenLoc = ReadSourceLocation(Record, Idx);
1602 E->Pack = Reader.ReadDeclAs<NamedDecl>(F, Record, Idx);
1608 new (I) TemplateArgument(Reader.ReadTemplateArgument(F, Record, Idx));
1610 E->Length = Record[Idx++];
1617 E->Param = ReadDeclAs<NonTypeTemplateParmDecl>(Record, Idx);
1618 E->NameLoc = ReadSourceLocation(Record, Idx);
1625 E->Param = ReadDeclAs<NonTypeTemplateParmDecl>(Record, Idx);
1626 TemplateArgument ArgPack = Reader.ReadTemplateArgument(F, Record, Idx);
1632 E->NameLoc = ReadSourceLocation(Record, Idx);
1637 E->NumParameters = Record[Idx++];
1638 E->ParamPack = ReadDeclAs<ParmVarDecl>(Record, Idx);
1639 E->NameLoc = ReadSourceLocation(Record, Idx);
1642 Parms[i] = ReadDeclAs<ParmVarDecl>(Record, Idx);
1648 auto VD = ReadDeclAs<ValueDecl>(Record, Idx);
1649 unsigned ManglingNumber = Record[Idx++];
1655 E->LParenLoc = ReadSourceLocation(Record, Idx);
1656 E->EllipsisLoc = ReadSourceLocation(Record, Idx);
1657 E->RParenLoc = ReadSourceLocation(Record, Idx);
1660 E->Opcode = (BinaryOperatorKind)Record[Idx++];
1666 E->Loc = ReadSourceLocation(Record, Idx);
1678 E->IsArrow = (Record[Idx++] != 0);
1680 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1681 E->MemberLoc = ReadSourceLocation(Record, Idx);
1682 E->TheDecl = ReadDeclAs<MSPropertyDecl>(Record, Idx);
1689 E->setRBracketLoc(ReadSourceLocation(Record, Idx));
1694 E->setSourceRange(ReadSourceRange(Record, Idx));
1695 std::string UuidStr = ReadString(Record, Idx);
1699 GetTypeSourceInfo(Record, Idx));
1709 S->setLeaveLoc(ReadSourceLocation(Record, Idx));
1714 S->Loc = ReadSourceLocation(Record, Idx);
1721 S->Loc = ReadSourceLocation(Record, Idx);
1727 S->IsCXXTry = Record[Idx++];
1728 S->TryLoc = ReadSourceLocation(Record, Idx);
1747 E->BuiltinLoc = ReadSourceLocation(Record, Idx);
1748 E->RParenLoc = ReadSourceLocation(Record, Idx);
1761 unsigned &Idx;
1764 const ASTReader::RecordData &Record, unsigned &Idx)
1765 : Reader(R), Context(C), Record(Record), Idx(Idx) { }
1776 switch (Record[Idx++]) {
1841 C = OMPPrivateClause::CreateEmpty(Context, Record[Idx++]);
1844 C = OMPFirstprivateClause::CreateEmpty(Context, Record[Idx++]);
1847 C = OMPLastprivateClause::CreateEmpty(Context, Record[Idx++]);
1850 C = OMPSharedClause::CreateEmpty(Context, Record[Idx++]);
1853 C = OMPReductionClause::CreateEmpty(Context, Record[Idx++]);
1856 C = OMPLinearClause::CreateEmpty(Context, Record[Idx++]);
1859 C = OMPAlignedClause::CreateEmpty(Context, Record[Idx++]);
1862 C = OMPCopyinClause::CreateEmpty(Context, Record[Idx++]);
1865 C = OMPCopyprivateClause::CreateEmpty(Context, Record[Idx++]);
1868 C = OMPFlushClause::CreateEmpty(Context, Record[Idx++]);
1871 C = OMPDependClause::CreateEmpty(Context, Record[Idx++]);
1877 unsigned NumVars = Record[Idx++];
1878 unsigned NumDeclarations = Record[Idx++];
1879 unsigned NumLists = Record[Idx++];
1880 unsigned NumComponents = Record[Idx++];
1910 unsigned NumVars = Record[Idx++];
1911 unsigned NumDeclarations = Record[Idx++];
1912 unsigned NumLists = Record[Idx++];
1913 unsigned NumComponents = Record[Idx++];
1919 unsigned NumVars = Record[Idx++];
1920 unsigned NumDeclarations = Record[Idx++];
1921 unsigned NumLists = Record[Idx++];
1922 unsigned NumComponents = Record[Idx++];
1928 C = OMPUseDevicePtrClause::CreateEmpty(Context, Record[Idx++]);
1931 C = OMPIsDevicePtrClause::CreateEmpty(Context, Record[Idx++]);
1935 C->setLocStart(Reader->ReadSourceLocation(Record, Idx));
1936 C->setLocEnd(Reader->ReadSourceLocation(Record, Idx));
1951 C->setNameModifier(static_cast<OpenMPDirectiveKind>(Record[Idx++]));
1952 C->setNameModifierLoc(Reader->ReadSourceLocation(Record, Idx));
1953 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
1955 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1960 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1965 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1970 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1975 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1980 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1985 static_cast<OpenMPDefaultClauseKind>(Record[Idx++]));
1986 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1987 C->setDefaultKindKwLoc(Reader->ReadSourceLocation(Record, Idx));
1992 static_cast<OpenMPProcBindClauseKind>(Record[Idx++]));
1993 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1994 C->setProcBindKindKwLoc(Reader->ReadSourceLocation(Record, Idx));
2000 static_cast<OpenMPScheduleClauseKind>(Record[Idx++]));
2002 static_cast<OpenMPScheduleClauseModifier>(Record[Idx++]));
2004 static_cast<OpenMPScheduleClauseModifier>(Record[Idx++]));
2006 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2007 C->setFirstScheduleModifierLoc(Reader->ReadSourceLocation(Record, Idx));
2008 C->setSecondScheduleModifierLoc(Reader->ReadSourceLocation(Record, Idx));
2009 C->setScheduleKindLoc(Reader->ReadSourceLocation(Record, Idx));
2010 C->setCommaLoc(Reader->ReadSourceLocation(Record, Idx));
2015 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2041 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2056 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2075 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2101 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2112 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2113 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2115 Reader->Reader.ReadNestedNameSpecifierLoc(Reader->F, Record, Idx);
2117 Reader->ReadDeclarationNameInfo(DNI, Record, Idx);
2147 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2148 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2149 C->setModifier(static_cast<OpenMPLinearClauseKind>(Record[Idx++]));
2150 C->setModifierLoc(Reader->ReadSourceLocation(Record, Idx));
2178 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2179 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2190 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2212 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2234 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2244 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2245 C->setDependencyKind(static_cast<OpenMPDependClauseKind>(Record[Idx++]));
2246 C->setDependencyLoc(Reader->ReadSourceLocation(Record, Idx));
2247 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2259 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2263 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2265 static_cast<OpenMPMapClauseKind>(Record[Idx++]));
2267 static_cast<OpenMPMapClauseKind>(Record[Idx++]));
2268 C->setMapLoc(Reader->ReadSourceLocation(Record, Idx));
2269 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2285 Reader->Reader.ReadDeclAs<ValueDecl>(Reader->F, Record, Idx));
2291 ListsPerDecl.push_back(Record[Idx++]);
2297 ListSizes.push_back(Record[Idx++]);
2305 Reader->Reader.ReadDeclAs<ValueDecl>(Reader->F, Record, Idx);
2314 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2319 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2324 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2329 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2334 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2339 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2345 static_cast<OpenMPDistScheduleClauseKind>(Record[Idx++]));
2347 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2348 C->setDistScheduleKindLoc(Reader->ReadSourceLocation(Record, Idx));
2349 C->setCommaLoc(Reader->ReadSourceLocation(Record, Idx));
2354 static_cast<OpenMPDefaultmapClauseKind>(Record[Idx++]));
2356 static_cast<OpenMPDefaultmapClauseModifier>(Record[Idx++]));
2357 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2358 C->setDefaultmapModifierLoc(Reader->ReadSourceLocation(Record, Idx));
2359 C->setDefaultmapKindLoc(Reader->ReadSourceLocation(Record, Idx));
2363 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2379 Reader->Reader.ReadDeclAs<ValueDecl>(Reader->F, Record, Idx));
2385 ListsPerDecl.push_back(Record[Idx++]);
2391 ListSizes.push_back(Record[Idx++]);
2399 Reader->Reader.ReadDeclAs<ValueDecl>(Reader->F, Record, Idx);
2407 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2423 Reader->Reader.ReadDeclAs<ValueDecl>(Reader->F, Record, Idx));
2429 ListsPerDecl.push_back(Record[Idx++]);
2435 ListSizes.push_back(Record[Idx++]);
2443 Reader->Reader.ReadDeclAs<ValueDecl>(Reader->F, Record, Idx);
2451 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2462 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2476 E->setLocStart(ReadSourceLocation(Record, Idx));
2477 E->setLocEnd(ReadSourceLocation(Record, Idx));
2478 OMPClauseReader ClauseReader(this, Reader.getContext(), Record, Idx);
2490 Idx += 2;
2543 ++Idx;
2545 D->setHasCancel(Record[Idx++]);
2554 D->setHasCancel(Record[Idx++]);
2564 ++Idx;
2566 D->setHasCancel(Record[Idx++]);
2572 D->setHasCancel(Record[Idx++]);
2578 ++Idx;
2590 ++Idx;
2592 ReadDeclarationNameInfo(D->DirName, Record, Idx);
2597 D->setHasCancel(Record[Idx++]);
2609 ++Idx;
2611 D->setHasCancel(Record[Idx++]);
2617 ++Idx;
2619 D->setHasCancel(Record[Idx++]);
2645 ++Idx;
2652 ++Idx;
2659 ++Idx;
2665 D->IsXLHSInRHSPart = Record[Idx++] != 0;
2666 D->IsPostfixUpdate = Record[Idx++] != 0;
2672 ++Idx;
2678 ++Idx;
2685 ++Idx;
2692 ++Idx;
2699 ++Idx;
2706 D->setHasCancel(Record[Idx++]);
2712 ++Idx;
2720 D->setCancelRegion(static_cast<OpenMPDirectiveKind>(Record[Idx++]));
2726 ++Idx;
2728 D->setCancelRegion(static_cast<OpenMPDirectiveKind>(Record[Idx++]));
2745 ++Idx;
2815 unsigned Idx;
2816 ASTStmtReader Reader(*this, F, Cursor, Record, Idx);
2835 Idx = 0;
2848 S = StmtEntries[Record[Idx++]];
3012 assert(Idx == 0);
3014 if (Record[Idx++]) { // HasQualifier.
3015 QualifierLoc = ReadNestedNameSpecifierLoc(F, Record, Idx);
3020 bool HasTemplateKWAndArgsInfo = Record[Idx++];
3022 TemplateKWLoc = ReadSourceLocation(F, Record, Idx);
3023 unsigned NumTemplateArgs = Record[Idx++];
3024 ArgInfo.setLAngleLoc(ReadSourceLocation(F, Record, Idx));
3025 ArgInfo.setRAngleLoc(ReadSourceLocation(F, Record, Idx));
3027 ArgInfo.addArgument(ReadTemplateArgumentLoc(F, Record, Idx));
3030 bool HadMultipleCandidates = Record[Idx++];
3032 NamedDecl *FoundD = ReadDeclAs<NamedDecl>(F, Record, Idx);
3033 AccessSpecifier AS = (AccessSpecifier)Record[Idx++];
3036 QualType T = readType(F, Record, Idx);
3037 ExprValueKind VK = static_cast<ExprValueKind>(Record[Idx++]);
3038 ExprObjectKind OK = static_cast<ExprObjectKind>(Record[Idx++]);
3040 ValueDecl *MemberD = ReadDeclAs<ValueDecl>(F, Record, Idx);
3041 SourceLocation MemberLoc = ReadSourceLocation(F, Record, Idx);
3043 bool IsArrow = Record[Idx++];
3044 SourceLocation OperatorLoc = ReadSourceLocation(F, Record, Idx);
3051 MemberD->getDeclName(), Record, Idx);
3715 assert(Idx == Record.size() && "Invalid deserialization of statement");