Home | History | Annotate | Download | only in Serialization

Lines Matching full:record

34     const ASTReader::RecordData &Record;
83 const ASTReader::RecordData &Record, unsigned &Idx)
84 : Reader(Reader), F(F), DeclsCursor(Cursor), Record(Record), Idx(Idx) { }
86 /// \brief The number of record fields required for the Stmt class
90 /// \brief The number of record fields required for the Expr class
111 SourceLocation TemplateKWLoc = ReadSourceLocation(Record, Idx);
113 ArgInfo.setLAngleLoc(ReadSourceLocation(Record, Idx));
114 ArgInfo.setRAngleLoc(ReadSourceLocation(Record, Idx));
117 Reader.ReadTemplateArgumentLoc(F, Record, Idx));
127 S->setSemiLoc(ReadSourceLocation(Record, Idx));
128 S->HasLeadingEmptyMacro = Record[Idx++];
134 unsigned NumStmts = Record[Idx++];
138 S->LBraceLoc = ReadSourceLocation(Record, Idx);
139 S->RBraceLoc = ReadSourceLocation(Record, Idx);
144 Reader.RecordSwitchCaseID(S, Record[Idx++]);
145 S->setKeywordLoc(ReadSourceLocation(Record, Idx));
146 S->setColonLoc(ReadSourceLocation(Record, Idx));
154 S->setEllipsisLoc(ReadSourceLocation(Record, Idx));
164 LabelDecl *LD = ReadDeclAs<LabelDecl>(Record, Idx);
168 S->setIdentLoc(ReadSourceLocation(Record, Idx));
173 uint64_t NumAttrs = Record[Idx++];
175 Reader.ReadAttributes(F, Attrs, Record, Idx);
181 S->AttrLoc = ReadSourceLocation(Record, Idx);
187 ReadDeclAs<VarDecl>(Record, Idx));
191 S->setIfLoc(ReadSourceLocation(Record, Idx));
192 S->setElseLoc(ReadSourceLocation(Record, Idx));
198 ReadDeclAs<VarDecl>(Record, Idx));
201 S->setSwitchLoc(ReadSourceLocation(Record, Idx));
202 if (Record[Idx++])
206 for (unsigned N = Record.size(); Idx != N; ++Idx) {
207 SwitchCase *SC = Reader.getSwitchCaseWithID(Record[Idx]);
220 ReadDeclAs<VarDecl>(Record, Idx));
224 S->setWhileLoc(ReadSourceLocation(Record, Idx));
231 S->setDoLoc(ReadSourceLocation(Record, Idx));
232 S->setWhileLoc(ReadSourceLocation(Record, Idx));
233 S->setRParenLoc(ReadSourceLocation(Record, Idx));
241 ReadDeclAs<VarDecl>(Record, Idx));
244 S->setForLoc(ReadSourceLocation(Record, Idx));
245 S->setLParenLoc(ReadSourceLocation(Record, Idx));
246 S->setRParenLoc(ReadSourceLocation(Record, Idx));
251 S->setLabel(ReadDeclAs<LabelDecl>(Record, Idx));
252 S->setGotoLoc(ReadSourceLocation(Record, Idx));
253 S->setLabelLoc(ReadSourceLocation(Record, Idx));
258 S->setGotoLoc(ReadSourceLocation(Record, Idx));
259 S->setStarLoc(ReadSourceLocation(Record, Idx));
265 S->setContinueLoc(ReadSourceLocation(Record, Idx));
270 S->setBreakLoc(ReadSourceLocation(Record, Idx));
276 S->setReturnLoc(ReadSourceLocation(Record, Idx));
277 S->setNRVOCandidate(ReadDeclAs<VarDecl>(Record, Idx));
282 S->setStartLoc(ReadSourceLocation(Record, Idx));
283 S->setEndLoc(ReadSourceLocation(Record, Idx));
285 if (Idx + 1 == Record.size()) {
287 S->setDeclGroup(DeclGroupRef(ReadDecl(Record, Idx)));
290 Decls.reserve(Record.size() - Idx);
291 for (unsigned N = Record.size(); Idx != N; )
292 Decls.push_back(ReadDecl(Record, Idx));
301 S->NumOutputs = Record[Idx++];
302 S->NumInputs = Record[Idx++];
303 S->NumClobbers = Record[Idx++];
304 S->setAsmLoc(ReadSourceLocation(Record, Idx));
305 S->setVolatile(Record[Idx++]);
306 S->setSimple(Record[Idx++]);
311 S->setRParenLoc(ReadSourceLocation(Record, Idx));
323 Names.push_back(Reader.GetIdentifierInfo(F, Record, Idx));
341 S->LBraceLoc = ReadSourceLocation(Record, Idx);
342 S->EndLoc = ReadSourceLocation(Record, Idx);
343 S->NumAsmToks = Record[Idx++];
344 std::string AsmStr = ReadString(Record, Idx);
350 AsmToks.push_back(ReadToken(Record, Idx));
362 ClobbersData.push_back(ReadString(Record, Idx));
376 ConstraintsData.push_back(ReadString(Record, Idx));
407 S->setCapturedDecl(ReadDeclAs<CapturedDecl>(Record, Idx));
408 S->setCapturedRegionKind(static_cast<CapturedRegionKind>(Record[Idx++]));
409 S->setCapturedRecordDecl(ReadDeclAs<RecordDecl>(Record, Idx));
423 I.VarAndKind.setPointer(ReadDeclAs<VarDecl>(Record, Idx));
425 .setInt(static_cast<CapturedStmt::VariableCaptureKind>(Record[Idx++]));
426 I.Loc = ReadSourceLocation(Record, Idx);
432 E->setType(Reader.readType(F, Record, Idx));
433 E->setTypeDependent(Record[Idx++]);
434 E->setValueDependent(Record[Idx++]);
435 E->setInstantiationDependent(Record[Idx++]);
436 E->ExprBits.ContainsUnexpandedParameterPack = Record[Idx++];
437 E->setValueKind(static_cast<ExprValueKind>(Record[Idx++]));
438 E->setObjectKind(static_cast<ExprObjectKind>(Record[Idx++]));
444 E->setLocation(ReadSourceLocation(Record, Idx));
445 E->Type = (PredefinedExpr::IdentType)Record[Idx++];
452 E->DeclRefExprBits.HasQualifier = Record[Idx++];
453 E->DeclRefExprBits.HasFoundDecl = Record[Idx++];
454 E->DeclRefExprBits.HasTemplateKWAndArgsInfo = Record[Idx++];
455 E->DeclRefExprBits.HadMultipleCandidates = Record[Idx++];
456 E->DeclRefExprBits.RefersToEnclosingVariableOrCapture = Record[Idx++];
459 NumTemplateArgs = Record[Idx++];
463 = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
466 E->getInternalFoundDecl() = ReadDeclAs<NamedDecl>(Record, Idx);
472 E->setDecl(ReadDeclAs<ValueDecl>(Record, Idx));
473 E->setLocation(ReadSourceLocation(Record, Idx));
474 ReadDeclarationNameLoc(E->DNLoc, E->getDecl()->getDeclName(), Record, Idx);
479 E->setLocation(ReadSourceLocation(Record, Idx));
480 E->setValue(Reader.getContext(), Reader.ReadAPInt(Record, Idx));
485 E->setRawSemantics(static_cast<Stmt::APFloatSemantics>(Record[Idx++]));
486 E->setExact(Record[Idx++]);
488 Reader.ReadAPFloat(Record
489 E->setLocation(ReadSourceLocation(Record, Idx));
499 unsigned Len = Record[Idx++];
500 assert(Record[Idx] == E->getNumConcatenated() &&
504 static_cast<StringLiteral::StringKind>(Record[Idx++]);
505 bool isPascal = Record[Idx++];
508 SmallString<16> Str(&Record[Idx], &Record[Idx] + Len);
514 E->setStrTokenLoc(I, ReadSourceLocation(Record, Idx));
519 E->setValue(Record[Idx++]);
520 E->setLocation(ReadSourceLocation(Record, Idx));
521 E->setKind(static_cast<CharacterLiteral::CharacterKind>(Record[Idx++]));
526 E->setLParen(ReadSourceLocation(Record, Idx));
527 E->setRParen(ReadSourceLocation(Record, Idx));
533 unsigned NumExprs = Record[Idx++];
538 E->LParenLoc = ReadSourceLocation(Record, Idx);
539 E->RParenLoc = ReadSourceLocation(Record, Idx);
545 E->setOpcode((UnaryOperator::Opcode)Record[Idx++]);
546 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
552 assert(E->getNumComponents() == Record[Idx]);
554 assert(E->getNumExpressions() == Record[Idx]);
556 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
557 E->setRParenLoc(ReadSourceLocation(Record, Idx));
558 E->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
560 Node::Kind Kind = static_cast<Node::Kind>(Record[Idx++]);
561 SourceLocation Start = ReadSourceLocation(Record, Idx);
562 SourceLocation End = ReadSourceLocation(Record, Idx);
565 E->setComponent(I, Node(Start, Record[Idx++], End));
569 E->setComponent(I, Node(Start, ReadDeclAs<FieldDecl>(Record, Idx), End));
575 Reader.GetIdentifierInfo(F, Record, Idx),
581 *Base = Reader.ReadCXXBaseSpecifier(F, Record, Idx);
594 E->setKind(static_cast<UnaryExprOrTypeTrait>(Record[Idx++]));
595 if (Record[Idx] == 0) {
599 E->setArgument(GetTypeSourceInfo(Record, Idx));
601 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
602 E->setRParenLoc(ReadSourceLocation(Record, Idx));
609 E->setRBracketLoc(ReadSourceLocation(Record, Idx));
617 E->setColonLoc(ReadSourceLocation(Record, Idx));
618 E->setRBracketLoc(ReadSourceLocation(Record, Idx));
623 E->setNumArgs(Reader.getContext(), Record[Idx++]);
624 E->setRParenLoc(ReadSourceLocation(Record, Idx));
643 E->setIsaMemberLoc(ReadSourceLocation(Record, Idx));
644 E->setOpLoc(ReadSourceLocation(Record, Idx));
645 E->setArrow(Record[Idx++]);
652 E->setShouldCopy(Record[Idx++]);
657 E->LParenLoc = ReadSourceLocation(Record, Idx);
658 E->BridgeKeywordLoc = ReadSourceLocation(Record, Idx);
659 E->Kind = Record[Idx++];
664 unsigned NumBaseSpecs = Record[Idx++];
667 E->setCastKind((CastKind)Record[Idx++]);
671 *BaseSpec = Reader.ReadCXXBaseSpecifier(F, Record, Idx);
680 E->setOpcode((BinaryOperator::Opcode)Record[Idx++]);
681 E->setOperatorLoc(ReadSourceLocation(Record, Idx));
682 E->setFPContractable((bool)Record[Idx++]);
687 E->setComputationLHSType(Reader.readType(F, Record, Idx));
688 E->setComputationResultType(Reader.readType(F, Record, Idx));
696 E->QuestionLoc = ReadSourceLocation(Record, Idx);
697 E->ColonLoc = ReadSourceLocation(Record, Idx);
708 E->QuestionLoc = ReadSourceLocation(Record, Idx);
709 E->ColonLoc = ReadSourceLocation(Record, Idx);
718 E->setTypeInfoAsWritten(GetTypeSourceInfo(Record, Idx));
723 E->setLParenLoc(ReadSourceLocation(Record, Idx));
724 E->setRParenLoc(ReadSourceLocation(Record, Idx));
729 E->setLParenLoc(ReadSourceLocation(Record, Idx));
730 E->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
732 E->setFileScope(Record[Idx++]);
738 E->setAccessor(Reader.GetIdentifierInfo(F, Record, Idx));
739 E->setAccessorLoc(ReadSourceLocation(Record, Idx));
746 E->setLBraceLoc(ReadSourceLocation(Record, Idx));
747 E->setRBraceLoc(ReadSourceLocation(Record, Idx));
748 bool isArrayFiller = Record[Idx++];
754 E->ArrayFillerOrUnionFieldInit = ReadDeclAs<FieldDecl>(Record, Idx);
755 E->sawArrayRangeDesignator(Record[Idx++]);
756 unsigned NumInits = Record[Idx++];
773 unsigned NumSubExprs = Record[Idx++];
777 E->setEqualOrColonLoc(ReadSourceLocation(Record, Idx));
778 E->setGNUSyntax(Record[Idx++]);
781 while (Idx < Record.size()) {
782 switch ((DesignatorTypes)Record[Idx++]) {
784 FieldDecl *Field = ReadDeclAs<FieldDecl>(Record, Idx);
786 = ReadSourceLocation(Record, Idx);
788 = ReadSourceLocation(Record, Idx);
796 const IdentifierInfo *Name = Reader.GetIdentifierInfo(F, Record, Idx);
798 = ReadSourceLocation(Record, Idx);
800 = ReadSourceLocation(Record, Idx);
806 unsigned Index = Record[Idx++];
808 = ReadSourceLocation(Record, Idx);
810 = ReadSourceLocation(Record, Idx);
816 unsigned Index = Record[Idx++];
818 = ReadSourceLocation(Record, Idx);
820 = ReadSourceLocation(Record, Idx);
822 = ReadSourceLocation(Record, Idx);
850 E->setWrittenTypeInfo(GetTypeSourceInfo(Record, Idx));
851 E->setBuiltinLoc(ReadSourceLocation(Record, Idx));
852 E->setRParenLoc(ReadSourceLocation(Record, Idx));
853 E->setIsMicrosoftABI(Record[Idx++]);
858 E->setAmpAmpLoc(ReadSourceLocation(Record, Idx));
859 E->setLabelLoc(ReadSourceLocation(Record, Idx));
860 E->setLabel(ReadDeclAs<LabelDecl>(Record, Idx));
865 E->setLParenLoc(ReadSourceLocation(Record, Idx));
866 E->setRParenLoc(ReadSourceLocation(Record, Idx));
875 E->setBuiltinLoc(ReadSourceLocation(Record, Idx));
876 E->setRParenLoc(ReadSourceLocation(Record, Idx));
877 E->setIsConditionTrue(Record[Idx++]);
882 E->setTokenLocation(ReadSourceLocation(Record, Idx));
888 unsigned NumExprs = Record[Idx++];
892 E->setBuiltinLoc(ReadSourceLocation(Record, Idx));
893 E->setRParenLoc(ReadSourceLocation(Record, Idx));
898 E->BuiltinLoc = ReadSourceLocation(Record, Idx);
899 E->RParenLoc = ReadSourceLocation(Record, Idx);
900 E->TInfo = GetTypeSourceInfo(Record, Idx);
906 E->setBlockDecl(ReadDeclAs<BlockDecl>(Record, Idx));
911 E->NumAssocs = Record[Idx++];
918 E->AssocTypes[I] = GetTypeSourceInfo(Record, Idx);
921 E->ResultIndex = Record[Idx++];
923 E->GenericLoc = ReadSourceLocation(Record, Idx);
924 E->DefaultLoc = ReadSourceLocation(Record, Idx);
925 E->RParenLoc = ReadSourceLocation(Record, Idx);
930 unsigned numSemanticExprs = Record[Idx++];
932 E->PseudoObjectExprBits.ResultIndex = Record[Idx++];
946 E->Op = AtomicExpr::AtomicOp(Record[Idx++]);
950 E->BuiltinLoc = ReadSourceLocation(Record, Idx);
951 E->RParenLoc = ReadSourceLocation(Record, Idx);
960 E->setAtLoc(ReadSourceLocation(Record, Idx));
967 E->BoxingMethod = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
968 E->Range = ReadSourceRange(Record, Idx);
973 unsigned NumElements = Record[Idx++];
978 E->ArrayWithObjectsMethod = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
979 E->Range = ReadSourceRange(Record, Idx);
984 unsigned NumElements = Record[Idx++];
986 bool HasPackExpansions = Record[Idx++];
994 Expansions[I].EllipsisLoc = ReadSourceLocation(Record, Idx);
995 Expansions[I].NumExpansionsPlusOne = Record[Idx++];
998 E->DictWithObjectsMethod = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
999 E->Range = ReadSourceRange(Record, Idx);
1004 E->setEncodedTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
1005 E->setAtLoc(ReadSourceLocation(Record, Idx));
1006 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1011 E->setSelector(Reader.ReadSelector(F, Record, Idx));
1012 E->setAtLoc(ReadSourceLocation(Record, Idx));
1013 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1018 E->setProtocol(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));
1019 E->setAtLoc(ReadSourceLocation(Record, Idx));
1020 E->ProtoLoc = ReadSourceLocation(Record, Idx);
1021 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1026 E->setDecl(ReadDeclAs<ObjCIvarDecl>(Record, Idx));
1027 E->setLocation(ReadSourceLocation(Record, Idx));
1028 E->setOpLoc(ReadSourceLocation(Record, Idx));
1030 E->setIsArrow(Record[Idx++]);
1031 E->setIsFreeIvar(Record[Idx++]);
1036 unsigned MethodRefFlags = Record[Idx++];
1037 bool Implicit = Record[Idx++] != 0;
1039 ObjCMethodDecl *Getter = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1040 ObjCMethodDecl *Setter = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1043 E->setExplicitProperty(ReadDeclAs<ObjCPropertyDecl>(Record, Idx),
1046 E->setLocation(ReadSourceLocation(Record, Idx));
1047 E->setReceiverLocation(ReadSourceLocation(Record, Idx));
1048 switch (Record[Idx++]) {
1053 E->setSuperReceiver(Reader.readType(F, Record, Idx));
1056 E->setClassReceiver(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));
1063 E->setRBracket(ReadSourceLocation(Record, Idx));
1066 E->GetAtIndexMethodDecl = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1067 E->SetAtIndexMethodDecl = ReadDeclAs<ObjCMethodDecl>(Record, Idx);
1072 assert(Record[Idx] == E->getNumArgs());
1074 unsigned NumStoredSelLocs = Record[Idx++];
1075 E->SelLocsKind = Record[Idx++];
1076 E->setDelegateInitCall(Record[Idx++]);
1077 E->IsImplicit = Record[Idx++];
1079 = static_cast<ObjCMessageExpr::ReceiverKind>(Record[Idx++]);
1086 E->setClassReceiver(GetTypeSourceInfo(Record, Idx));
1091 QualType T = Reader.readType(F, Record, Idx);
1092 SourceLocation SuperLoc = ReadSourceLocation(Record, Idx);
1100 if (Record[Idx++])
1101 E->setMethodDecl(ReadDeclAs<ObjCMethodDecl>(Record, Idx));
1103 E->setSelector(Reader.ReadSelector(F, Record, Idx));
1105 E->LBracLoc = ReadSourceLocation(Record, Idx);
1106 E->RBracLoc = ReadSourceLocation(Record, Idx);
1113 Locs[I] = ReadSourceLocation(Record, Idx);
1121 S->setForLoc(ReadSourceLocation(Record, Idx));
1122 S->setRParenLoc(ReadSourceLocation(Record, Idx));
1128 S->setCatchParamDecl(ReadDeclAs<VarDecl>(Record, Idx));
1129 S->setAtCatchLoc(ReadSourceLocation(Record, Idx));
1130 S->setRParenLoc(ReadSourceLocation(Record, Idx));
1136 S->setAtFinallyLoc(ReadSourceLocation(Record, Idx));
1142 S->setAtLoc(ReadSourceLocation(Record, Idx));
1147 assert(Record[Idx] == S->getNumCatchStmts());
1149 bool HasFinally = Record[Idx++];
1156 S->setAtTryLoc(ReadSourceLocation(Record, Idx));
1163 S->setAtSynchronizedLoc(ReadSourceLocation(Record, Idx));
1169 S->setThrowLoc(ReadSourceLocation(Record, Idx));
1174 E->setValue(Record[Idx++]);
1175 E->setLocation(ReadSourceLocation(Record, Idx));
1184 S->CatchLoc = ReadSourceLocation(Record, Idx);
1185 S->ExceptionDecl = ReadDeclAs<VarDecl>(Record, Idx);
1191 assert(Record[Idx] == S->getNumHandlers() && "NumStmtFields is wrong ?");
1193 S->TryLoc = ReadSourceLocation(Record, Idx);
1201 S->ForLoc = ReadSourceLocation(Record, Idx);
1202 S->CoawaitLoc = ReadSourceLocation(Record, Idx);
1203 S->ColonLoc = ReadSourceLocation(Record, Idx);
1204 S->RParenLoc = ReadSourceLocation(Record, Idx);
1215 S->KeywordLoc = ReadSourceLocation(Record, Idx);
1216 S->IsIfExists = Record[Idx++];
1217 S->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1218 ReadDeclarationNameInfo(S->NameInfo, Record, Idx);
1224 E->Operator = (OverloadedOperatorKind)Record[Idx++];
1225 E->Range = Reader.ReadSourceRange(F, Record, Idx);
1226 E->setFPContractable((bool)Record[Idx++]);
1231 E->NumArgs = Record[Idx++];
1236 E->setConstructor(ReadDeclAs<CXXConstructorDecl>(Record, Idx));
1237 E->setLocation(ReadSourceLocation(Record, Idx));
1238 E->setElidable(Record[Idx++]);
1239 E->setHadMultipleCandidates(Record[Idx++]);
1240 E->setListInitialization(Record[Idx++]);
1241 E->setStdInitListInitialization(Record[Idx++]);
1242 E->setRequiresZeroInitialization(Record[Idx++]);
1243 E->setConstructionKind((CXXConstructExpr::ConstructionKind)Record[Idx++]);
1244 E->ParenOrBraceRange = ReadSourceRange(Record, Idx);
1249 E->Type = GetTypeSourceInfo(Record, Idx);
1254 unsigned NumCaptures = Record[Idx++];
1256 unsigned NumArrayIndexVars = Record[Idx++];
1257 E->IntroducerRange = ReadSourceRange(Record, Idx);
1258 E->CaptureDefault = static_cast<LambdaCaptureDefault>(Record[Idx++]);
1259 E->CaptureDefaultLoc = ReadSourceLocation(Record, Idx);
1260 E->ExplicitParams = Record[Idx++];
1261 E->ExplicitResultType = Record[Idx++];
1262 E->ClosingBrace = ReadSourceLocation(Record, Idx);
1274 ArrayIndexStarts[I] = Record[Idx++];
1278 ArrayIndexVars[I] = ReadDeclAs<VarDecl>(Record, Idx);
1290 SourceRange R = ReadSourceRange(Record, Idx);
1293 R = ReadSourceRange(Record, Idx);
1315 E->setLParenLoc(ReadSourceLocation(Record, Idx));
1316 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1321 E->UDSuffixLoc = ReadSourceLocation(Record, Idx);
1326 E->setValue(Record[Idx++]);
1327 E->setLocation(ReadSourceLocation(Record, Idx));
1332 E->setLocation(ReadSourceLocation(Record, Idx));
1337 E->setSourceRange(ReadSourceRange(Record, Idx));
1340 GetTypeSourceInfo(Record, Idx));
1350 E->setLocation(ReadSourceLocation(Record, Idx));
1351 E->setImplicit(Record[Idx++]);
1356 E->ThrowLoc = ReadSourceLocation(Record, Idx);
1358 E->IsThrownVariableInScope = Record[Idx++];
1364 assert((bool)Record[Idx] == E->Param.getInt() && "We messed up at creation ?");
1366 E->Param.setPointer(ReadDeclAs<ParmVarDecl>(Record, Idx));
1367 E->Loc = ReadSourceLocation(Record, Idx);
1372 E->Field = ReadDeclAs<FieldDecl>(Record, Idx);
1373 E->Loc = ReadSourceLocation(Record, Idx);
1378 E->setTemporary(Reader.ReadCXXTemporary(F, Record, Idx));
1384 E->TypeInfo = GetTypeSourceInfo(Record, Idx);
1385 E->RParenLoc = ReadSourceLocation(Record, Idx);
1390 E->GlobalNew = Record[Idx++];
1391 bool isArray = Record[Idx++];
1392 E->UsualArrayDeleteWantsSize = Record[Idx++];
1393 unsigned NumPlacementArgs = Record[Idx++];
1394 E->StoredInitializationStyle = Record[Idx++];
1395 E->setOperatorNew(ReadDeclAs<FunctionDecl>(Record, Idx));
1396 E->setOperatorDelete(ReadDeclAs<FunctionDecl>(Record, Idx));
1397 E->AllocatedTypeInfo = GetTypeSourceInfo(Record, Idx);
1398 E->TypeIdParens = ReadSourceRange(Record, Idx);
1399 E->Range = ReadSourceRange(Record, Idx);
1400 E->DirectInitRange = ReadSourceRange(Record, Idx);
1413 E->GlobalDelete = Record[Idx++];
1414 E->ArrayForm = Record[Idx++];
1415 E->ArrayFormAsWritten = Record[Idx++];
1416 E->UsualArrayDeleteWantsSize = Record[Idx++];
1417 E->OperatorDelete = ReadDeclAs<FunctionDecl>(Record, Idx);
1419 E->Loc = ReadSourceLocation(Record, Idx);
1426 E->IsArrow = Record[Idx++];
1427 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1428 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1429 E->ScopeType = GetTypeSourceInfo(Record, Idx);
1430 E->ColonColonLoc = ReadSourceLocation(Record, Idx);
1431 E->TildeLoc = ReadSourceLocation(Record, Idx);
1433 IdentifierInfo *II = Reader.GetIdentifierInfo(F, Record, Idx);
1435 E->setDestroyedType(II, ReadSourceLocation(Record, Idx));
1437 E->setDestroyedType(GetTypeSourceInfo(Record, Idx));
1443 unsigned NumObjects = Record[Idx++];
1446 E->getObjectsBuffer()[i] = ReadDeclAs<BlockDecl>(Record, Idx);
1455 if (Record[Idx++]) // HasTemplateKWAndArgsInfo
1457 /*NumTemplateArgs=*/Record[Idx++]);
1460 E->BaseType = Reader.readType(F, Record, Idx);
1461 E->IsArrow = Record[Idx++];
1462 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1463 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1464 E->FirstQualifierFoundInScope = ReadDeclAs<NamedDecl>(Record, Idx);
1465 ReadDeclarationNameInfo(E->MemberNameInfo, Record, Idx);
1472 if (Record[Idx++]) // HasTemplateKWAndArgsInfo
1474 /*NumTemplateArgs=*/Record[Idx++]);
1476 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1477 ReadDeclarationNameInfo(E->NameInfo, Record, Idx);
1483 assert(Record[Idx] == E->arg_size() && "Read wrong record during creation ?");
1487 E->Type = GetTypeSourceInfo(Record, Idx);
1488 E->setLParenLoc(ReadSourceLocation(Record, Idx));
1489 E->setRParenLoc(ReadSourceLocation(Record, Idx));
1495 if (Record[Idx++]) // HasTemplateKWAndArgsInfo
1497 /*NumTemplateArgs=*/Record[Idx++]);
1499 unsigned NumDecls = Record[Idx++];
1502 NamedDecl *D = ReadDeclAs<NamedDecl>(Record, Idx);
1503 AccessSpecifier AS = (AccessSpecifier)Record[Idx++];
1508 ReadDeclarationNameInfo(E->NameInfo, Record, Idx);
1509 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1514 E->IsArrow = Record[Idx++];
1515 E->HasUnresolvedUsing = Record[Idx++];
1517 E->BaseType = Reader.readType(F, Record, Idx);
1518 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1523 E->RequiresADL = Record[Idx++];
1524 E->Overloaded = Record[Idx++];
1525 E->NamingClass = ReadDeclAs<CXXRecordDecl>(Record, Idx);
1530 E->TypeTraitExprBits.NumArgs = Record[Idx++];
1531 E->TypeTraitExprBits.Kind = Record[Idx++];
1532 E->TypeTraitExprBits.Value = Record[Idx++];
1533 SourceRange Range = ReadSourceRange(Record, Idx);
1539 Args[I] = GetTypeSourceInfo(Record, Idx);
1544 E->ATT = (ArrayTypeTrait)Record[Idx++];
1545 E->Value = (unsigned int)Record[Idx++];
1546 SourceRange Range = ReadSourceRange(Record, Idx);
1549 E->QueriedType = GetTypeSourceInfo(Record, Idx);
1554 E->ET = (ExpressionTrait)Record[Idx++];
1555 E->Value = (bool)Record[Idx++];
1556 SourceRange Range = ReadSourceRange(Record, Idx);
1564 E->Value = (bool)Record[Idx++];
1565 E->Range = ReadSourceRange(Record, Idx);
1571 E->EllipsisLoc = ReadSourceLocation(Record, Idx);
1572 E->NumExpansions = Record[Idx++];
1578 unsigned NumPartialArgs = Record[Idx++];
1579 E->OperatorLoc = ReadSourceLocation(Record, Idx);
1580 E->PackLoc = ReadSourceLocation(Record, Idx);
1581 E->RParenLoc = ReadSourceLocation(Record, Idx);
1582 E->Pack = Reader.ReadDeclAs<NamedDecl>(F, Record, Idx);
1588 new (I) TemplateArgument(Reader.ReadTemplateArgument(F, Record, Idx));
1590 E->Length = Record[Idx++];
1597 E->Param = ReadDeclAs<NonTypeTemplateParmDecl>(Record, Idx);
1598 E->NameLoc = ReadSourceLocation(Record, Idx);
1605 E->Param = ReadDeclAs<NonTypeTemplateParmDecl>(Record, Idx);
1606 TemplateArgument ArgPack = Reader.ReadTemplateArgument(F, Record, Idx);
1612 E->NameLoc = ReadSourceLocation(Record, Idx);
1617 E->NumParameters = Record[Idx++];
1618 E->ParamPack = ReadDeclAs<ParmVarDecl>(Record, Idx);
1619 E->NameLoc = ReadSourceLocation(Record, Idx);
1622 Parms[i] = ReadDeclAs<ParmVarDecl>(Record, Idx);
1628 auto VD = ReadDeclAs<ValueDecl>(Record, Idx);
1629 unsigned ManglingNumber = Record[Idx++];
1635 E->LParenLoc = ReadSourceLocation(Record, Idx);
1636 E->EllipsisLoc = ReadSourceLocation(Record, Idx);
1637 E->RParenLoc = ReadSourceLocation(Record, Idx);
1640 E->Opcode = (BinaryOperatorKind)Record[Idx++];
1646 E->Loc = ReadSourceLocation(Record, Idx);
1658 E->IsArrow = (Record[Idx++] != 0);
1660 E->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);
1661 E->MemberLoc = ReadSourceLocation(Record, Idx);
1662 E->TheDecl = ReadDeclAs<MSPropertyDecl>(Record, Idx);
1669 E->setRBracketLoc(ReadSourceLocation(Record, Idx));
1674 E->setSourceRange(ReadSourceRange(Record, Idx));
1677 GetTypeSourceInfo(Record, Idx));
1687 S->setLeaveLoc(ReadSourceLocation(Record, Idx));
1692 S->Loc = ReadSourceLocation(Record, Idx);
1699 S->Loc = ReadSourceLocation(Record, Idx);
1705 S->IsCXXTry = Record[Idx++];
1706 S->TryLoc = ReadSourceLocation(Record, Idx);
1725 E->BuiltinLoc = ReadSourceLocation(Record, Idx);
1726 E->RParenLoc = ReadSourceLocation(Record, Idx);
1738 const ASTReader::RecordData &Record;
1742 const ASTReader::RecordData &Record, unsigned &Idx)
1743 : Reader(R), Context(C), Record(Record), Idx(Idx) { }
1753 switch (Record[Idx++]) {
1818 C = OMPPrivateClause::CreateEmpty(Context, Record[Idx++]);
1821 C = OMPFirstprivateClause::CreateEmpty(Context, Record[Idx++]);
1824 C = OMPLastprivateClause::CreateEmpty(Context, Record[Idx++]);
1827 C = OMPSharedClause::CreateEmpty(Context, Record[Idx++]);
1830 C = OMPReductionClause::CreateEmpty(Context, Record[Idx++]);
1833 C = OMPLinearClause::CreateEmpty(Context, Record[Idx++]);
1836 C = OMPAlignedClause::CreateEmpty(Context, Record[Idx++]);
1839 C = OMPCopyinClause::CreateEmpty(Context, Record[Idx++]);
1842 C = OMPCopyprivateClause::CreateEmpty(Context, Record[Idx++]);
1845 C = OMPFlushClause::CreateEmpty(Context, Record[Idx++]);
1848 C = OMPDependClause::CreateEmpty(Context, Record[Idx++]);
1854 C = OMPMapClause::CreateEmpty(Context, Record[Idx++]);
1876 C->setLocStart(Reader->ReadSourceLocation(Record, Idx));
1877 C->setLocEnd(Reader->ReadSourceLocation(Record, Idx));
1883 C->setNameModifier(static_cast<OpenMPDirectiveKind>(Record[Idx++]));
1884 C->setNameModifierLoc(Reader->ReadSourceLocation(Record, Idx));
1885 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
1887 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1892 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1897 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1902 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1907 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1912 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1917 static_cast<OpenMPDefaultClauseKind>(Record[Idx++]));
1918 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1919 C->setDefaultKindKwLoc(Reader->ReadSourceLocation(Record, Idx));
1924 static_cast<OpenMPProcBindClauseKind>(Record[Idx++]));
1925 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1926 C->setProcBindKindKwLoc(Reader->ReadSourceLocation(Record, Idx));
1931 static_cast<OpenMPScheduleClauseKind>(Record[Idx++]));
1934 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1935 C->setScheduleKindLoc(Reader->ReadSourceLocation(Record, Idx));
1936 C->setCommaLoc(Reader->ReadSourceLocation(Record, Idx));
1941 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1967 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1981 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
1999 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2025 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2035 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2036 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2038 Reader->Reader.ReadNestedNameSpecifierLoc(Reader->F, Record, Idx);
2040 Reader->ReadDeclarationNameInfo(DNI, Record, Idx);
2069 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2070 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2071 C->setModifier(static_cast<OpenMPLinearClauseKind>(Record[Idx++]));
2072 C->setModifierLoc(Reader->ReadSourceLocation(Record, Idx));
2100 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2101 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2112 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2134 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2156 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2166 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2167 C->setDependencyKind(static_cast<OpenMPDependClauseKind>(Record[Idx++]));
2168 C->setDependencyLoc(Reader->ReadSourceLocation(Record, Idx));
2169 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2180 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2184 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2186 static_cast<OpenMPMapClauseKind>(Record[Idx++]));
2188 static_cast<OpenMPMapClauseKind>(Record[Idx++]));
2189 C->setMapLoc(Reader->ReadSourceLocation(Record, Idx));
2190 C->setColonLoc(Reader->ReadSourceLocation(Record, Idx));
2202 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2207 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2212 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2217 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2222 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2227 C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx));
2234 E->setLocStart(ReadSourceLocation(Record, Idx));
2235 E->setLocEnd(ReadSourceLocation(Record, Idx));
2236 OMPClauseReader ClauseReader(this, Reader.getContext(), Record, Idx);
2295 D->setHasCancel(Record[Idx++]);
2304 D->setHasCancel(Record[Idx++]);
2316 D->setHasCancel(Record[Idx++]);
2322 D->setHasCancel(Record[Idx++]);
2342 ReadDeclarationNameInfo(D->DirName, Record, Idx);
2347 D->setHasCancel(Record[Idx++]);
2361 D->setHasCancel(Record[Idx++]);
2369 D->setHasCancel(Record[Idx++]);
2415 D->IsXLHSInRHSPart = Record[Idx++] != 0;
2416 D->IsPostfixUpdate = Record[Idx++] != 0;
2443 D->setCancelRegion(static_cast<OpenMPDirectiveKind>(Record[Idx++]));
2451 D->setCancelRegion(static_cast<OpenMPDirectiveKind>(Record[Idx++]));
2497 // stack. Evaluation terminates when we see a STMT_STOP record, and
2505 /// just after the stmt record.
2512 RecordData Record;
2514 ASTStmtReader Reader(*this, F, Cursor, Record, Idx);
2523 Error("malformed block record in AST file");
2527 case llvm::BitstreamEntry::Record:
2534 Record.clear();
2537 switch ((StmtCode)Cursor.readRecord(Entry.ID, Record)) {
2544 assert(StmtEntries.find(Record[0]) != StmtEntries.end() &&
2546 S = StmtEntries[Record[Idx++]];
2576 /*NumAttrs*/Record[ASTStmtReader::NumStmtFields]);
2633 Record[ASTStmtReader::NumStmtFields]);
2643 /*HasQualifier=*/Record[ASTStmtReader::NumExprFields],
2644 /*HasFoundDecl=*/Record[ASTStmtReader::NumExprFields + 1],
2645 /*HasTemplateKWAndArgsInfo=*/Record[ASTStmtReader::NumExprFields + 2],
2646 /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields + 2] ?
2647 Record[ASTStmtReader::NumExprFields + 5] : 0);
2664 Record[ASTStmtReader::NumExprFields + 1]);
2685 Record[ASTStmtReader::NumExprFields],
2686 Record[ASTStmtReader::NumExprFields + 1]);
2712 if (Record[Idx++]) { // HasQualifier.
2713 QualifierLoc = ReadNestedNameSpecifierLoc(F, Record, Idx);
2718 bool HasTemplateKWAndArgsInfo = Record[Idx++];
2720 TemplateKWLoc = ReadSourceLocation(F, Record, Idx);
2721 unsigned NumTemplateArgs = Record[Idx++];
2722 ArgInfo.setLAngleLoc(ReadSourceLocation(F, Record, Idx));
2723 ArgInfo.setRAngleLoc(ReadSourceLocation(F, Record, Idx));
2725 ArgInfo.addArgument(ReadTemplateArgumentLoc(F, Record, Idx));
2728 bool HadMultipleCandidates = Record[Idx++];
2730 NamedDecl *FoundD = ReadDeclAs<NamedDecl>(F, Record, Idx);
2731 AccessSpecifier AS = (AccessSpecifier)Record[Idx++];
2734 QualType T = readType(F, Record, Idx);
2735 ExprValueKind VK = static_cast<ExprValueKind>(Record[Idx++]);
2736 ExprObjectKind OK = static_cast<ExprObjectKind>(Record[Idx++]);
2738 ValueDecl *MemberD = ReadDeclAs<ValueDecl>(F, Record, Idx);
2739 SourceLocation MemberLoc = ReadSourceLocation(F, Record, Idx);
2741 bool IsArrow = Record[Idx++];
2742 SourceLocation OperatorLoc = ReadSourceLocation(F, Record, Idx);
2749 MemberD->getDeclName(), Record, Idx);
2773 /*PathSize*/ Record[ASTStmtReader::NumExprFields]);
2778 /*PathSize*/ Record[ASTStmtReader::NumExprFields]);
2795 Record[ASTStmtReader::NumExprFields] - 1);
2855 Record[ASTStmtReader::NumExprFields]);
2859 Record[ASTStmtReader::NumExprFields],
2860 Record[ASTStmtReader::NumExprFields + 1]);
2884 Record[ASTStmtReader::NumExprFields],
2885 Record[ASTStmtReader::NumExprFields + 1]);
2907 Record[ASTStmtReader::NumStmtFields],
2908 Record[ASTStmtReader::NumStmtFields + 1]);
2940 /*NumHandlers=*/Record[ASTStmtReader::NumStmtFields]);
2957 Record[ASTStmtReader::NumStmtFields],
2962 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
2963 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
2970 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
2971 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
2978 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
2979 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
2987 Context, Record[ASTStmtReader::NumStmtFields], Empty);
2996 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3005 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3009 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
3010 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
3017 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
3018 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
3026 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3031 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3052 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3057 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3062 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3067 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3072 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3077 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3086 Context, Record[ASTStmtReader::NumStmtFields], Empty);
3090 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
3091 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
3098 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
3099 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
3106 unsigned NumClauses = Record[ASTStmtReader::NumStmtFields];
3107 unsigned CollapsedNum = Record[ASTStmtReader::NumStmtFields + 1];
3131 /*PathSize*/ Record[ASTStmtReader::NumExprFields]);
3136 /*PathSize*/ Record[ASTStmtReader::NumExprFields]);
3141 /*PathSize*/ Record[ASTStmtReader::NumExprFields]);
3150 /*PathSize*/ Record[ASTStmtReader::NumExprFields]);
3193 bool HasOtherExprStored = Record[ASTStmtReader::NumExprFields];
3224 Record[ASTStmtReader::NumExprFields]);
3229 /*HasTemplateKWAndArgsInfo=*/Record[ASTStmtReader::NumExprFields],
3230 /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields]
3231 ? Record[ASTStmtReader::NumExprFields + 1]
3237 /*HasTemplateKWAndArgsInfo=*/Record[ASTStmtReader::NumExprFields],
3238 /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields]
3239 ? Record[ASTStmtReader::NumExprFields + 1]
3245 /*NumArgs=*/Record[ASTStmtReader::NumExprFields]);
3250 /*HasTemplateKWAndArgsInfo=*/Record[ASTStmtReader::NumExprFields],
3251 /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields]
3252 ? Record[ASTStmtReader::NumExprFields + 1]
3258 /*HasTemplateKWAndArgsInfo=*/Record[ASTStmtReader::NumExprFields],
3259 /*NumTemplateArgs=*/Record[ASTStmtReader::NumExprFields]
3260 ? Record[ASTStmtReader::NumExprFields + 1]
3266 Record[ASTStmtReader::NumExprFields]);
3288 /*NumPartialArgs=*/Record[ASTStmtReader::NumExprFields]);
3301 Record[ASTStmtReader::NumExprFields]);
3325 unsigned numSemanticExprs = Record[ASTStmtReader::NumExprFields];
3335 unsigned NumCaptures = Record[ASTStmtReader::NumExprFields];
3336 unsigned NumArrayIndexVars = Record[ASTStmtReader::NumExprFields + 1];
3355 assert(Idx == Record.size() && "Invalid deserialization of statement");