• Home
  • Raw
  • Download

Lines Matching full:record

88     ASTRecordWriter Record;  member in clang::ASTTypeWriter
90 /// \brief Type code that corresponds to the record generated.
92 /// \brief Abbreviation to use for the record, if any.
96 ASTTypeWriter(ASTWriter &Writer, ASTWriter::RecordDataImpl &Record) in ASTTypeWriter() argument
97 : Writer(Writer), Record(Writer, Record), Code((TypeCode)0), AbbrevToUse(0) { } in ASTTypeWriter()
100 return Record.Emit(Code, AbbrevToUse); in Emit()
106 Record.AddTypeRef(T.getLocalUnqualifiedType()); in Visit()
107 Record.push_back(Qs.getAsOpaqueValue()); in Visit()
137 Record.AddTypeRef(T->getElementType()); in VisitComplexType()
142 Record.AddTypeRef(T->getPointeeType()); in VisitPointerType()
147 Record.AddTypeRef(T->getOriginalType()); in VisitDecayedType()
152 Record.AddTypeRef(T->getOriginalType()); in VisitAdjustedType()
153 Record.AddTypeRef(T->getAdjustedType()); in VisitAdjustedType()
158 Record.AddTypeRef(T->getPointeeType()); in VisitBlockPointerType()
163 Record.AddTypeRef(T->getPointeeTypeAsWritten()); in VisitLValueReferenceType()
164 Record.push_back(T->isSpelledAsLValue()); in VisitLValueReferenceType()
169 Record.AddTypeRef(T->getPointeeTypeAsWritten()); in VisitRValueReferenceType()
174 Record.AddTypeRef(T->getPointeeType()); in VisitMemberPointerType()
175 Record.AddTypeRef(QualType(T->getClass(), 0)); in VisitMemberPointerType()
180 Record.AddTypeRef(T->getElementType()); in VisitArrayType()
181 Record.push_back(T->getSizeModifier()); // FIXME: stable values in VisitArrayType()
182 Record.push_back(T->getIndexTypeCVRQualifiers()); // FIXME: stable values in VisitArrayType()
187 Record.AddAPInt(T->getSize()); in VisitConstantArrayType()
198 Record.AddSourceLocation(T->getLBracketLoc()); in VisitVariableArrayType()
199 Record.AddSourceLocation(T->getRBracketLoc()); in VisitVariableArrayType()
200 Record.AddStmt(T->getSizeExpr()); in VisitVariableArrayType()
205 Record.AddTypeRef(T->getElementType()); in VisitVectorType()
206 Record.push_back(T->getNumElements()); in VisitVectorType()
207 Record.push_back(T->getVectorKind()); in VisitVectorType()
217 Record.AddTypeRef(T->getReturnType()); in VisitFunctionType()
219 Record.push_back(C.getNoReturn()); in VisitFunctionType()
220 Record.push_back(C.getHasRegParm()); in VisitFunctionType()
221 Record.push_back(C.getRegParm()); in VisitFunctionType()
223 Record.push_back(C.getCC()); in VisitFunctionType()
224 Record.push_back(C.getProducesResult()); in VisitFunctionType()
236 ASTRecordWriter &Record) { in addExceptionSpec() argument
237 Record.push_back(T->getExceptionSpecType()); in addExceptionSpec()
239 Record.push_back(T->getNumExceptions()); in addExceptionSpec()
241 Record.AddTypeRef(T->getExceptionType(I)); in addExceptionSpec()
243 Record.AddStmt(T->getNoexceptExpr()); in addExceptionSpec()
245 Record.AddDeclRef(T->getExceptionSpecDecl()); in addExceptionSpec()
246 Record.AddDeclRef(T->getExceptionSpecTemplate()); in addExceptionSpec()
248 Record.AddDeclRef(T->getExceptionSpecDecl()); in addExceptionSpec()
255 Record.push_back(T->isVariadic()); in VisitFunctionProtoType()
256 Record.push_back(T->hasTrailingReturn()); in VisitFunctionProtoType()
257 Record.push_back(T->getTypeQuals()); in VisitFunctionProtoType()
258 Record.push_back(static_cast<unsigned>(T->getRefQualifier())); in VisitFunctionProtoType()
259 addExceptionSpec(T, Record); in VisitFunctionProtoType()
261 Record.push_back(T->getNumParams()); in VisitFunctionProtoType()
263 Record.AddTypeRef(T->getParamType(I)); in VisitFunctionProtoType()
267 Record.push_back(T->getExtParameterInfo(I).getOpaqueValue()); in VisitFunctionProtoType()
279 Record.AddDeclRef(T->getDecl()); in VisitUnresolvedUsingType()
284 Record.AddDeclRef(T->getDecl()); in VisitTypedefType()
286 Record.AddTypeRef(T->getCanonicalTypeInternal()); in VisitTypedefType()
291 Record.AddStmt(T->getUnderlyingExpr()); in VisitTypeOfExprType()
296 Record.AddTypeRef(T->getUnderlyingType()); in VisitTypeOfType()
301 Record.AddTypeRef(T->getUnderlyingType()); in VisitDecltypeType()
302 Record.AddStmt(T->getUnderlyingExpr()); in VisitDecltypeType()
307 Record.AddTypeRef(T->getBaseType()); in VisitUnaryTransformType()
308 Record.AddTypeRef(T->getUnderlyingType()); in VisitUnaryTransformType()
309 Record.push_back(T->getUTTKind()); in VisitUnaryTransformType()
314 Record.AddTypeRef(T->getDeducedType()); in VisitAutoType()
315 Record.push_back((unsigned)T->getKeyword()); in VisitAutoType()
317 Record.push_back(T->isDependentType()); in VisitAutoType()
322 Record.push_back(T->isDependentType()); in VisitTagType()
323 Record.AddDeclRef(T->getDecl()->getCanonicalDecl()); in VisitTagType()
339 Record.AddTypeRef(T->getModifiedType()); in VisitAttributedType()
340 Record.AddTypeRef(T->getEquivalentType()); in VisitAttributedType()
341 Record.push_back(T->getAttrKind()); in VisitAttributedType()
348 Record.AddTypeRef(QualType(T->getReplacedParameter(), 0)); in VisitSubstTemplateTypeParmType()
349 Record.AddTypeRef(T->getReplacementType()); in VisitSubstTemplateTypeParmType()
356 Record.AddTypeRef(QualType(T->getReplacedParameter(), 0)); in VisitSubstTemplateTypeParmPackType()
357 Record.AddTemplateArgument(T->getArgumentPack()); in VisitSubstTemplateTypeParmPackType()
364 Record.push_back(T->isDependentType()); in VisitTemplateSpecializationType()
365 Record.AddTemplateName(T->getTemplateName()); in VisitTemplateSpecializationType()
366 Record.push_back(T->getNumArgs()); in VisitTemplateSpecializationType()
368 Record.AddTemplateArgument(ArgI); in VisitTemplateSpecializationType()
369 Record.AddTypeRef(T->isTypeAlias() ? T->getAliasedType() in VisitTemplateSpecializationType()
379 Record.AddStmt(T->getSizeExpr()); in VisitDependentSizedArrayType()
380 Record.AddSourceRange(T->getBracketsRange()); in VisitDependentSizedArrayType()
393 Record.push_back(T->getDepth()); in VisitTemplateTypeParmType()
394 Record.push_back(T->getIndex()); in VisitTemplateTypeParmType()
395 Record.push_back(T->isParameterPack()); in VisitTemplateTypeParmType()
396 Record.AddDeclRef(T->getDecl()); in VisitTemplateTypeParmType()
402 Record.push_back(T->getKeyword()); in VisitDependentNameType()
403 Record.AddNestedNameSpecifier(T->getQualifier()); in VisitDependentNameType()
404 Record.AddIdentifierRef(T->getIdentifier()); in VisitDependentNameType()
405 Record.AddTypeRef( in VisitDependentNameType()
413 Record.push_back(T->getKeyword()); in VisitDependentTemplateSpecializationType()
414 Record.AddNestedNameSpecifier(T->getQualifier()); in VisitDependentTemplateSpecializationType()
415 Record.AddIdentifierRef(T->getIdentifier()); in VisitDependentTemplateSpecializationType()
416 Record.push_back(T->getNumArgs()); in VisitDependentTemplateSpecializationType()
418 Record.AddTemplateArgument(I); in VisitDependentTemplateSpecializationType()
423 Record.AddTypeRef(T->getPattern()); in VisitPackExpansionType()
425 Record.push_back(*NumExpansions + 1); in VisitPackExpansionType()
427 Record.push_back(0); in VisitPackExpansionType()
432 Record.AddTypeRef(T->getInnerType()); in VisitParenType()
437 Record.push_back(T->getKeyword()); in VisitElaboratedType()
438 Record.AddNestedNameSpecifier(T->getQualifier()); in VisitElaboratedType()
439 Record.AddTypeRef(T->getNamedType()); in VisitElaboratedType()
444 Record.AddDeclRef(T->getDecl()->getCanonicalDecl()); in VisitInjectedClassNameType()
445 Record.AddTypeRef(T->getInjectedSpecializationType()); in VisitInjectedClassNameType()
450 Record.AddDeclRef(T->getDecl()->getCanonicalDecl()); in VisitObjCInterfaceType()
455 Record.AddTypeRef(T->getBaseType()); in VisitObjCObjectType()
456 Record.push_back(T->getTypeArgsAsWritten().size()); in VisitObjCObjectType()
458 Record.AddTypeRef(TypeArg); in VisitObjCObjectType()
459 Record.push_back(T->getNumProtocols()); in VisitObjCObjectType()
461 Record.AddDeclRef(I); in VisitObjCObjectType()
462 Record.push_back(T->isKindOfTypeAsWritten()); in VisitObjCObjectType()
468 Record.AddTypeRef(T->getPointeeType()); in VisitObjCObjectPointerType()
474 Record.AddTypeRef(T->getValueType()); in VisitAtomicType()
480 Record.AddTypeRef(T->getElementType()); in VisitPipeType()
487 ASTRecordWriter &Record; member in __anon9159baf50111::TypeLocWriter
490 TypeLocWriter(ASTRecordWriter &Record) in TypeLocWriter() argument
491 : Record(Record) { } in TypeLocWriter()
508 Record.AddSourceLocation(TL.getBuiltinLoc()); in VisitBuiltinTypeLoc()
510 Record.push_back(TL.getWrittenTypeSpec()); in VisitBuiltinTypeLoc()
511 Record.push_back(TL.getWrittenSignSpec()); in VisitBuiltinTypeLoc()
512 Record.push_back(TL.getWrittenWidthSpec()); in VisitBuiltinTypeLoc()
513 Record.push_back(TL.hasModeAttr()); in VisitBuiltinTypeLoc()
517 Record.AddSourceLocation(TL.getNameLoc()); in VisitComplexTypeLoc()
520 Record.AddSourceLocation(TL.getStarLoc()); in VisitPointerTypeLoc()
529 Record.AddSourceLocation(TL.getCaretLoc()); in VisitBlockPointerTypeLoc()
532 Record.AddSourceLocation(TL.getAmpLoc()); in VisitLValueReferenceTypeLoc()
535 Record.AddSourceLocation(TL.getAmpAmpLoc()); in VisitRValueReferenceTypeLoc()
538 Record.AddSourceLocation(TL.getStarLoc()); in VisitMemberPointerTypeLoc()
539 Record.AddTypeSourceInfo(TL.getClassTInfo()); in VisitMemberPointerTypeLoc()
542 Record.AddSourceLocation(TL.getLBracketLoc()); in VisitArrayTypeLoc()
543 Record.AddSourceLocation(TL.getRBracketLoc()); in VisitArrayTypeLoc()
544 Record.push_back(TL.getSizeExpr() ? 1 : 0); in VisitArrayTypeLoc()
546 Record.AddStmt(TL.getSizeExpr()); in VisitArrayTypeLoc()
563 Record.AddSourceLocation(TL.getNameLoc()); in VisitDependentSizedExtVectorTypeLoc()
566 Record.AddSourceLocation(TL.getNameLoc()); in VisitVectorTypeLoc()
569 Record.AddSourceLocation(TL.getNameLoc()); in VisitExtVectorTypeLoc()
572 Record.AddSourceLocation(TL.getLocalRangeBegin()); in VisitFunctionTypeLoc()
573 Record.AddSourceLocation(TL.getLParenLoc()); in VisitFunctionTypeLoc()
574 Record.AddSourceLocation(TL.getRParenLoc()); in VisitFunctionTypeLoc()
575 Record.AddSourceLocation(TL.getLocalRangeEnd()); in VisitFunctionTypeLoc()
577 Record.AddDeclRef(TL.getParam(i)); in VisitFunctionTypeLoc()
586 Record.AddSourceLocation(TL.getNameLoc()); in VisitUnresolvedUsingTypeLoc()
589 Record.AddSourceLocation(TL.getNameLoc()); in VisitTypedefTypeLoc()
592 Record.AddSourceLocation(TL.getTypeofLoc()); in VisitTypeOfExprTypeLoc()
593 Record.AddSourceLocation(TL.getLParenLoc()); in VisitTypeOfExprTypeLoc()
594 Record.AddSourceLocation(TL.getRParenLoc()); in VisitTypeOfExprTypeLoc()
597 Record.AddSourceLocation(TL.getTypeofLoc()); in VisitTypeOfTypeLoc()
598 Record.AddSourceLocation(TL.getLParenLoc()); in VisitTypeOfTypeLoc()
599 Record.AddSourceLocation(TL.getRParenLoc()); in VisitTypeOfTypeLoc()
600 Record.AddTypeSourceInfo(TL.getUnderlyingTInfo()); in VisitTypeOfTypeLoc()
603 Record.AddSourceLocation(TL.getNameLoc()); in VisitDecltypeTypeLoc()
606 Record.AddSourceLocation(TL.getKWLoc()); in VisitUnaryTransformTypeLoc()
607 Record.AddSourceLocation(TL.getLParenLoc()); in VisitUnaryTransformTypeLoc()
608 Record.AddSourceLocation(TL.getRParenLoc()); in VisitUnaryTransformTypeLoc()
609 Record.AddTypeSourceInfo(TL.getUnderlyingTInfo()); in VisitUnaryTransformTypeLoc()
612 Record.AddSourceLocation(TL.getNameLoc()); in VisitAutoTypeLoc()
615 Record.AddSourceLocation(TL.getNameLoc()); in VisitRecordTypeLoc()
618 Record.AddSourceLocation(TL.getNameLoc()); in VisitEnumTypeLoc()
621 Record.AddSourceLocation(TL.getAttrNameLoc()); in VisitAttributedTypeLoc()
624 Record.AddSourceLocation(range.getBegin()); in VisitAttributedTypeLoc()
625 Record.AddSourceLocation(range.getEnd()); in VisitAttributedTypeLoc()
629 Record.push_back(operand ? 1 : 0); in VisitAttributedTypeLoc()
630 if (operand) Record.AddStmt(operand); in VisitAttributedTypeLoc()
632 Record.AddSourceLocation(TL.getAttrEnumOperandLoc()); in VisitAttributedTypeLoc()
636 Record.AddSourceLocation(TL.getNameLoc()); in VisitTemplateTypeParmTypeLoc()
640 Record.AddSourceLocation(TL.getNameLoc()); in VisitSubstTemplateTypeParmTypeLoc()
644 Record.AddSourceLocation(TL.getNameLoc()); in VisitSubstTemplateTypeParmPackTypeLoc()
648 Record.AddSourceLocation(TL.getTemplateKeywordLoc()); in VisitTemplateSpecializationTypeLoc()
649 Record.AddSourceLocation(TL.getTemplateNameLoc()); in VisitTemplateSpecializationTypeLoc()
650 Record.AddSourceLocation(TL.getLAngleLoc()); in VisitTemplateSpecializationTypeLoc()
651 Record.AddSourceLocation(TL.getRAngleLoc()); in VisitTemplateSpecializationTypeLoc()
653 Record.AddTemplateArgumentLocInfo(TL.getArgLoc(i).getArgument().getKind(), in VisitTemplateSpecializationTypeLoc()
657 Record.AddSourceLocation(TL.getLParenLoc()); in VisitParenTypeLoc()
658 Record.AddSourceLocation(TL.getRParenLoc()); in VisitParenTypeLoc()
661 Record.AddSourceLocation(TL.getElaboratedKeywordLoc()); in VisitElaboratedTypeLoc()
662 Record.AddNestedNameSpecifierLoc(TL.getQualifierLoc()); in VisitElaboratedTypeLoc()
665 Record.AddSourceLocation(TL.getNameLoc()); in VisitInjectedClassNameTypeLoc()
668 Record.AddSourceLocation(TL.getElaboratedKeywordLoc()); in VisitDependentNameTypeLoc()
669 Record.AddNestedNameSpecifierLoc(TL.getQualifierLoc()); in VisitDependentNameTypeLoc()
670 Record.AddSourceLocation(TL.getNameLoc()); in VisitDependentNameTypeLoc()
674 Record.AddSourceLocation(TL.getElaboratedKeywordLoc()); in VisitDependentTemplateSpecializationTypeLoc()
675 Record.AddNestedNameSpecifierLoc(TL.getQualifierLoc()); in VisitDependentTemplateSpecializationTypeLoc()
676 Record.AddSourceLocation(TL.getTemplateKeywordLoc()); in VisitDependentTemplateSpecializationTypeLoc()
677 Record.AddSourceLocation(TL.getTemplateNameLoc()); in VisitDependentTemplateSpecializationTypeLoc()
678 Record.AddSourceLocation(TL.getLAngleLoc()); in VisitDependentTemplateSpecializationTypeLoc()
679 Record.AddSourceLocation(TL.getRAngleLoc()); in VisitDependentTemplateSpecializationTypeLoc()
681 Record.AddTemplateArgumentLocInfo(TL.getArgLoc(I).getArgument().getKind(), in VisitDependentTemplateSpecializationTypeLoc()
685 Record.AddSourceLocation(TL.getEllipsisLoc()); in VisitPackExpansionTypeLoc()
688 Record.AddSourceLocation(TL.getNameLoc()); in VisitObjCInterfaceTypeLoc()
691 Record.push_back(TL.hasBaseTypeAsWritten()); in VisitObjCObjectTypeLoc()
692 Record.AddSourceLocation(TL.getTypeArgsLAngleLoc()); in VisitObjCObjectTypeLoc()
693 Record.AddSourceLocation(TL.getTypeArgsRAngleLoc()); in VisitObjCObjectTypeLoc()
695 Record.AddTypeSourceInfo(TL.getTypeArgTInfo(i)); in VisitObjCObjectTypeLoc()
696 Record.AddSourceLocation(TL.getProtocolLAngleLoc()); in VisitObjCObjectTypeLoc()
697 Record.AddSourceLocation(TL.getProtocolRAngleLoc()); in VisitObjCObjectTypeLoc()
699 Record.AddSourceLocation(TL.getProtocolLoc(i)); in VisitObjCObjectTypeLoc()
702 Record.AddSourceLocation(TL.getStarLoc()); in VisitObjCObjectPointerTypeLoc()
705 Record.AddSourceLocation(TL.getKWLoc()); in VisitAtomicTypeLoc()
706 Record.AddSourceLocation(TL.getLParenLoc()); in VisitAtomicTypeLoc()
707 Record.AddSourceLocation(TL.getRParenLoc()); in VisitAtomicTypeLoc()
710 Record.AddSourceLocation(TL.getKWLoc()); in VisitPipeTypeLoc()
753 ASTWriter::RecordDataImpl &Record) { in EmitBlockID() argument
754 Record.clear(); in EmitBlockID()
755 Record.push_back(ID); in EmitBlockID()
756 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_SETBID, Record); in EmitBlockID()
761 Record.clear(); in EmitBlockID()
763 Record.push_back(*Name++); in EmitBlockID()
764 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_BLOCKNAME, Record); in EmitBlockID()
769 ASTWriter::RecordDataImpl &Record) { in EmitRecordID() argument
770 Record.clear(); in EmitRecordID()
771 Record.push_back(ID); in EmitRecordID()
773 Record.push_back(*Name++); in EmitRecordID()
774 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_SETRECORDNAME, Record); in EmitRecordID()
778 ASTWriter::RecordDataImpl &Record) { in AddStmtsExprs() argument
779 #define RECORD(X) EmitRecordID(X, #X, Stream, Record) in AddStmtsExprs() macro
780 RECORD(STMT_STOP); in AddStmtsExprs()
781 RECORD(STMT_NULL_PTR); in AddStmtsExprs()
782 RECORD(STMT_REF_PTR); in AddStmtsExprs()
783 RECORD(STMT_NULL); in AddStmtsExprs()
784 RECORD(STMT_COMPOUND); in AddStmtsExprs()
785 RECORD(STMT_CASE); in AddStmtsExprs()
786 RECORD(STMT_DEFAULT); in AddStmtsExprs()
787 RECORD(STMT_LABEL); in AddStmtsExprs()
788 RECORD(STMT_ATTRIBUTED); in AddStmtsExprs()
789 RECORD(STMT_IF); in AddStmtsExprs()
790 RECORD(STMT_SWITCH); in AddStmtsExprs()
791 RECORD(STMT_WHILE); in AddStmtsExprs()
792 RECORD(STMT_DO); in AddStmtsExprs()
793 RECORD(STMT_FOR); in AddStmtsExprs()
794 RECORD(STMT_GOTO); in AddStmtsExprs()
795 RECORD(STMT_INDIRECT_GOTO); in AddStmtsExprs()
796 RECORD(STMT_CONTINUE); in AddStmtsExprs()
797 RECORD(STMT_BREAK); in AddStmtsExprs()
798 RECORD(STMT_RETURN); in AddStmtsExprs()
799 RECORD(STMT_DECL); in AddStmtsExprs()
800 RECORD(STMT_GCCASM); in AddStmtsExprs()
801 RECORD(STMT_MSASM); in AddStmtsExprs()
802 RECORD(EXPR_PREDEFINED); in AddStmtsExprs()
803 RECORD(EXPR_DECL_REF); in AddStmtsExprs()
804 RECORD(EXPR_INTEGER_LITERAL); in AddStmtsExprs()
805 RECORD(EXPR_FLOATING_LITERAL); in AddStmtsExprs()
806 RECORD(EXPR_IMAGINARY_LITERAL); in AddStmtsExprs()
807 RECORD(EXPR_STRING_LITERAL); in AddStmtsExprs()
808 RECORD(EXPR_CHARACTER_LITERAL); in AddStmtsExprs()
809 RECORD(EXPR_PAREN); in AddStmtsExprs()
810 RECORD(EXPR_PAREN_LIST); in AddStmtsExprs()
811 RECORD(EXPR_UNARY_OPERATOR); in AddStmtsExprs()
812 RECORD(EXPR_SIZEOF_ALIGN_OF); in AddStmtsExprs()
813 RECORD(EXPR_ARRAY_SUBSCRIPT); in AddStmtsExprs()
814 RECORD(EXPR_CALL); in AddStmtsExprs()
815 RECORD(EXPR_MEMBER); in AddStmtsExprs()
816 RECORD(EXPR_BINARY_OPERATOR); in AddStmtsExprs()
817 RECORD(EXPR_COMPOUND_ASSIGN_OPERATOR); in AddStmtsExprs()
818 RECORD(EXPR_CONDITIONAL_OPERATOR); in AddStmtsExprs()
819 RECORD(EXPR_IMPLICIT_CAST); in AddStmtsExprs()
820 RECORD(EXPR_CSTYLE_CAST); in AddStmtsExprs()
821 RECORD(EXPR_COMPOUND_LITERAL); in AddStmtsExprs()
822 RECORD(EXPR_EXT_VECTOR_ELEMENT); in AddStmtsExprs()
823 RECORD(EXPR_INIT_LIST); in AddStmtsExprs()
824 RECORD(EXPR_DESIGNATED_INIT); in AddStmtsExprs()
825 RECORD(EXPR_DESIGNATED_INIT_UPDATE); in AddStmtsExprs()
826 RECORD(EXPR_IMPLICIT_VALUE_INIT); in AddStmtsExprs()
827 RECORD(EXPR_NO_INIT); in AddStmtsExprs()
828 RECORD(EXPR_VA_ARG); in AddStmtsExprs()
829 RECORD(EXPR_ADDR_LABEL); in AddStmtsExprs()
830 RECORD(EXPR_STMT); in AddStmtsExprs()
831 RECORD(EXPR_CHOOSE); in AddStmtsExprs()
832 RECORD(EXPR_GNU_NULL); in AddStmtsExprs()
833 RECORD(EXPR_SHUFFLE_VECTOR); in AddStmtsExprs()
834 RECORD(EXPR_BLOCK); in AddStmtsExprs()
835 RECORD(EXPR_GENERIC_SELECTION); in AddStmtsExprs()
836 RECORD(EXPR_OBJC_STRING_LITERAL); in AddStmtsExprs()
837 RECORD(EXPR_OBJC_BOXED_EXPRESSION); in AddStmtsExprs()
838 RECORD(EXPR_OBJC_ARRAY_LITERAL); in AddStmtsExprs()
839 RECORD(EXPR_OBJC_DICTIONARY_LITERAL); in AddStmtsExprs()
840 RECORD(EXPR_OBJC_ENCODE); in AddStmtsExprs()
841 RECORD(EXPR_OBJC_SELECTOR_EXPR); in AddStmtsExprs()
842 RECORD(EXPR_OBJC_PROTOCOL_EXPR); in AddStmtsExprs()
843 RECORD(EXPR_OBJC_IVAR_REF_EXPR); in AddStmtsExprs()
844 RECORD(EXPR_OBJC_PROPERTY_REF_EXPR); in AddStmtsExprs()
845 RECORD(EXPR_OBJC_KVC_REF_EXPR); in AddStmtsExprs()
846 RECORD(EXPR_OBJC_MESSAGE_EXPR); in AddStmtsExprs()
847 RECORD(STMT_OBJC_FOR_COLLECTION); in AddStmtsExprs()
848 RECORD(STMT_OBJC_CATCH); in AddStmtsExprs()
849 RECORD(STMT_OBJC_FINALLY); in AddStmtsExprs()
850 RECORD(STMT_OBJC_AT_TRY); in AddStmtsExprs()
851 RECORD(STMT_OBJC_AT_SYNCHRONIZED); in AddStmtsExprs()
852 RECORD(STMT_OBJC_AT_THROW); in AddStmtsExprs()
853 RECORD(EXPR_OBJC_BOOL_LITERAL); in AddStmtsExprs()
854 RECORD(STMT_CXX_CATCH); in AddStmtsExprs()
855 RECORD(STMT_CXX_TRY); in AddStmtsExprs()
856 RECORD(STMT_CXX_FOR_RANGE); in AddStmtsExprs()
857 RECORD(EXPR_CXX_OPERATOR_CALL); in AddStmtsExprs()
858 RECORD(EXPR_CXX_MEMBER_CALL); in AddStmtsExprs()
859 RECORD(EXPR_CXX_CONSTRUCT); in AddStmtsExprs()
860 RECORD(EXPR_CXX_TEMPORARY_OBJECT); in AddStmtsExprs()
861 RECORD(EXPR_CXX_STATIC_CAST); in AddStmtsExprs()
862 RECORD(EXPR_CXX_DYNAMIC_CAST); in AddStmtsExprs()
863 RECORD(EXPR_CXX_REINTERPRET_CAST); in AddStmtsExprs()
864 RECORD(EXPR_CXX_CONST_CAST); in AddStmtsExprs()
865 RECORD(EXPR_CXX_FUNCTIONAL_CAST); in AddStmtsExprs()
866 RECORD(EXPR_USER_DEFINED_LITERAL); in AddStmtsExprs()
867 RECORD(EXPR_CXX_STD_INITIALIZER_LIST); in AddStmtsExprs()
868 RECORD(EXPR_CXX_BOOL_LITERAL); in AddStmtsExprs()
869 RECORD(EXPR_CXX_NULL_PTR_LITERAL); in AddStmtsExprs()
870 RECORD(EXPR_CXX_TYPEID_EXPR); in AddStmtsExprs()
871 RECORD(EXPR_CXX_TYPEID_TYPE); in AddStmtsExprs()
872 RECORD(EXPR_CXX_THIS); in AddStmtsExprs()
873 RECORD(EXPR_CXX_THROW); in AddStmtsExprs()
874 RECORD(EXPR_CXX_DEFAULT_ARG); in AddStmtsExprs()
875 RECORD(EXPR_CXX_DEFAULT_INIT); in AddStmtsExprs()
876 RECORD(EXPR_CXX_BIND_TEMPORARY); in AddStmtsExprs()
877 RECORD(EXPR_CXX_SCALAR_VALUE_INIT); in AddStmtsExprs()
878 RECORD(EXPR_CXX_NEW); in AddStmtsExprs()
879 RECORD(EXPR_CXX_DELETE); in AddStmtsExprs()
880 RECORD(EXPR_CXX_PSEUDO_DESTRUCTOR); in AddStmtsExprs()
881 RECORD(EXPR_EXPR_WITH_CLEANUPS); in AddStmtsExprs()
882 RECORD(EXPR_CXX_DEPENDENT_SCOPE_MEMBER); in AddStmtsExprs()
883 RECORD(EXPR_CXX_DEPENDENT_SCOPE_DECL_REF); in AddStmtsExprs()
884 RECORD(EXPR_CXX_UNRESOLVED_CONSTRUCT); in AddStmtsExprs()
885 RECORD(EXPR_CXX_UNRESOLVED_MEMBER); in AddStmtsExprs()
886 RECORD(EXPR_CXX_UNRESOLVED_LOOKUP); in AddStmtsExprs()
887 RECORD(EXPR_CXX_EXPRESSION_TRAIT); in AddStmtsExprs()
888 RECORD(EXPR_CXX_NOEXCEPT); in AddStmtsExprs()
889 RECORD(EXPR_OPAQUE_VALUE); in AddStmtsExprs()
890 RECORD(EXPR_BINARY_CONDITIONAL_OPERATOR); in AddStmtsExprs()
891 RECORD(EXPR_TYPE_TRAIT); in AddStmtsExprs()
892 RECORD(EXPR_ARRAY_TYPE_TRAIT); in AddStmtsExprs()
893 RECORD(EXPR_PACK_EXPANSION); in AddStmtsExprs()
894 RECORD(EXPR_SIZEOF_PACK); in AddStmtsExprs()
895 RECORD(EXPR_SUBST_NON_TYPE_TEMPLATE_PARM); in AddStmtsExprs()
896 RECORD(EXPR_SUBST_NON_TYPE_TEMPLATE_PARM_PACK); in AddStmtsExprs()
897 RECORD(EXPR_FUNCTION_PARM_PACK); in AddStmtsExprs()
898 RECORD(EXPR_MATERIALIZE_TEMPORARY); in AddStmtsExprs()
899 RECORD(EXPR_CUDA_KERNEL_CALL); in AddStmtsExprs()
900 RECORD(EXPR_CXX_UUIDOF_EXPR); in AddStmtsExprs()
901 RECORD(EXPR_CXX_UUIDOF_TYPE); in AddStmtsExprs()
902 RECORD(EXPR_LAMBDA); in AddStmtsExprs()
903 #undef RECORD in AddStmtsExprs()
907 RecordData Record; in WriteBlockInfoBlock() local
910 #define BLOCK(X) EmitBlockID(X ## _ID, #X, Stream, Record) in WriteBlockInfoBlock()
911 #define RECORD(X) EmitRecordID(X, #X, Stream, Record) in WriteBlockInfoBlock() macro
915 RECORD(METADATA); in WriteBlockInfoBlock()
916 RECORD(SIGNATURE); in WriteBlockInfoBlock()
917 RECORD(MODULE_NAME); in WriteBlockInfoBlock()
918 RECORD(MODULE_DIRECTORY); in WriteBlockInfoBlock()
919 RECORD(MODULE_MAP_FILE); in WriteBlockInfoBlock()
920 RECORD(IMPORTS); in WriteBlockInfoBlock()
921 RECORD(ORIGINAL_FILE); in WriteBlockInfoBlock()
922 RECORD(ORIGINAL_PCH_DIR); in WriteBlockInfoBlock()
923 RECORD(ORIGINAL_FILE_ID); in WriteBlockInfoBlock()
924 RECORD(INPUT_FILE_OFFSETS); in WriteBlockInfoBlock()
927 RECORD(LANGUAGE_OPTIONS); in WriteBlockInfoBlock()
928 RECORD(TARGET_OPTIONS); in WriteBlockInfoBlock()
929 RECORD(DIAGNOSTIC_OPTIONS); in WriteBlockInfoBlock()
930 RECORD(FILE_SYSTEM_OPTIONS); in WriteBlockInfoBlock()
931 RECORD(HEADER_SEARCH_OPTIONS); in WriteBlockInfoBlock()
932 RECORD(PREPROCESSOR_OPTIONS); in WriteBlockInfoBlock()
935 RECORD(INPUT_FILE); in WriteBlockInfoBlock()
939 RECORD(TYPE_OFFSET); in WriteBlockInfoBlock()
940 RECORD(DECL_OFFSET); in WriteBlockInfoBlock()
941 RECORD(IDENTIFIER_OFFSET); in WriteBlockInfoBlock()
942 RECORD(IDENTIFIER_TABLE); in WriteBlockInfoBlock()
943 RECORD(EAGERLY_DESERIALIZED_DECLS); in WriteBlockInfoBlock()
944 RECORD(SPECIAL_TYPES); in WriteBlockInfoBlock()
945 RECORD(STATISTICS); in WriteBlockInfoBlock()
946 RECORD(TENTATIVE_DEFINITIONS); in WriteBlockInfoBlock()
947 RECORD(SELECTOR_OFFSETS); in WriteBlockInfoBlock()
948 RECORD(METHOD_POOL); in WriteBlockInfoBlock()
949 RECORD(PP_COUNTER_VALUE); in WriteBlockInfoBlock()
950 RECORD(SOURCE_LOCATION_OFFSETS); in WriteBlockInfoBlock()
951 RECORD(SOURCE_LOCATION_PRELOADS); in WriteBlockInfoBlock()
952 RECORD(EXT_VECTOR_DECLS); in WriteBlockInfoBlock()
953 RECORD(UNUSED_FILESCOPED_DECLS); in WriteBlockInfoBlock()
954 RECORD(PPD_ENTITIES_OFFSETS); in WriteBlockInfoBlock()
955 RECORD(VTABLE_USES); in WriteBlockInfoBlock()
956 RECORD(REFERENCED_SELECTOR_POOL); in WriteBlockInfoBlock()
957 RECORD(TU_UPDATE_LEXICAL); in WriteBlockInfoBlock()
958 RECORD(SEMA_DECL_REFS); in WriteBlockInfoBlock()
959 RECORD(WEAK_UNDECLARED_IDENTIFIERS); in WriteBlockInfoBlock()
960 RECORD(PENDING_IMPLICIT_INSTANTIATIONS); in WriteBlockInfoBlock()
961 RECORD(UPDATE_VISIBLE); in WriteBlockInfoBlock()
962 RECORD(DECL_UPDATE_OFFSETS); in WriteBlockInfoBlock()
963 RECORD(DECL_UPDATES); in WriteBlockInfoBlock()
964 RECORD(DIAG_PRAGMA_MAPPINGS); in WriteBlockInfoBlock()
965 RECORD(CUDA_SPECIAL_DECL_REFS); in WriteBlockInfoBlock()
966 RECORD(HEADER_SEARCH_TABLE); in WriteBlockInfoBlock()
967 RECORD(FP_PRAGMA_OPTIONS); in WriteBlockInfoBlock()
968 RECORD(OPENCL_EXTENSIONS); in WriteBlockInfoBlock()
969 RECORD(DELEGATING_CTORS); in WriteBlockInfoBlock()
970 RECORD(KNOWN_NAMESPACES); in WriteBlockInfoBlock()
971 RECORD(MODULE_OFFSET_MAP); in WriteBlockInfoBlock()
972 RECORD(SOURCE_MANAGER_LINE_TABLE); in WriteBlockInfoBlock()
973 RECORD(OBJC_CATEGORIES_MAP); in WriteBlockInfoBlock()
974 RECORD(FILE_SORTED_DECLS); in WriteBlockInfoBlock()
975 RECORD(IMPORTED_MODULES); in WriteBlockInfoBlock()
976 RECORD(OBJC_CATEGORIES); in WriteBlockInfoBlock()
977 RECORD(MACRO_OFFSET); in WriteBlockInfoBlock()
978 RECORD(INTERESTING_IDENTIFIERS); in WriteBlockInfoBlock()
979 RECORD(UNDEFINED_BUT_USED); in WriteBlockInfoBlock()
980 RECORD(LATE_PARSED_TEMPLATE); in WriteBlockInfoBlock()
981 RECORD(OPTIMIZE_PRAGMA_OPTIONS); in WriteBlockInfoBlock()
982 RECORD(MSSTRUCT_PRAGMA_OPTIONS); in WriteBlockInfoBlock()
983 RECORD(POINTERS_TO_MEMBERS_PRAGMA_OPTIONS); in WriteBlockInfoBlock()
984 RECORD(UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES); in WriteBlockInfoBlock()
985 RECORD(DELETE_EXPRS_TO_ANALYZE); in WriteBlockInfoBlock()
989 RECORD(SM_SLOC_FILE_ENTRY); in WriteBlockInfoBlock()
990 RECORD(SM_SLOC_BUFFER_ENTRY); in WriteBlockInfoBlock()
991 RECORD(SM_SLOC_BUFFER_BLOB); in WriteBlockInfoBlock()
992 RECORD(SM_SLOC_BUFFER_BLOB_COMPRESSED); in WriteBlockInfoBlock()
993 RECORD(SM_SLOC_EXPANSION_ENTRY); in WriteBlockInfoBlock()
997 RECORD(PP_MACRO_DIRECTIVE_HISTORY); in WriteBlockInfoBlock()
998 RECORD(PP_MACRO_FUNCTION_LIKE); in WriteBlockInfoBlock()
999 RECORD(PP_MACRO_OBJECT_LIKE); in WriteBlockInfoBlock()
1000 RECORD(PP_MODULE_MACRO); in WriteBlockInfoBlock()
1001 RECORD(PP_TOKEN); in WriteBlockInfoBlock()
1005 RECORD(SUBMODULE_METADATA); in WriteBlockInfoBlock()
1006 RECORD(SUBMODULE_DEFINITION); in WriteBlockInfoBlock()
1007 RECORD(SUBMODULE_UMBRELLA_HEADER); in WriteBlockInfoBlock()
1008 RECORD(SUBMODULE_HEADER); in WriteBlockInfoBlock()
1009 RECORD(SUBMODULE_TOPHEADER); in WriteBlockInfoBlock()
1010 RECORD(SUBMODULE_UMBRELLA_DIR); in WriteBlockInfoBlock()
1011 RECORD(SUBMODULE_IMPORTS); in WriteBlockInfoBlock()
1012 RECORD(SUBMODULE_EXPORTS); in WriteBlockInfoBlock()
1013 RECORD(SUBMODULE_REQUIRES); in WriteBlockInfoBlock()
1014 RECORD(SUBMODULE_EXCLUDED_HEADER); in WriteBlockInfoBlock()
1015 RECORD(SUBMODULE_LINK_LIBRARY); in WriteBlockInfoBlock()
1016 RECORD(SUBMODULE_CONFIG_MACRO); in WriteBlockInfoBlock()
1017 RECORD(SUBMODULE_CONFLICT); in WriteBlockInfoBlock()
1018 RECORD(SUBMODULE_PRIVATE_HEADER); in WriteBlockInfoBlock()
1019 RECORD(SUBMODULE_TEXTUAL_HEADER); in WriteBlockInfoBlock()
1020 RECORD(SUBMODULE_PRIVATE_TEXTUAL_HEADER); in WriteBlockInfoBlock()
1024 RECORD(COMMENTS_RAW_COMMENT); in WriteBlockInfoBlock()
1028 RECORD(TYPE_EXT_QUAL); in WriteBlockInfoBlock()
1029 RECORD(TYPE_COMPLEX); in WriteBlockInfoBlock()
1030 RECORD(TYPE_POINTER); in WriteBlockInfoBlock()
1031 RECORD(TYPE_BLOCK_POINTER); in WriteBlockInfoBlock()
1032 RECORD(TYPE_LVALUE_REFERENCE); in WriteBlockInfoBlock()
1033 RECORD(TYPE_RVALUE_REFERENCE); in WriteBlockInfoBlock()
1034 RECORD(TYPE_MEMBER_POINTER); in WriteBlockInfoBlock()
1035 RECORD(TYPE_CONSTANT_ARRAY); in WriteBlockInfoBlock()
1036 RECORD(TYPE_INCOMPLETE_ARRAY); in WriteBlockInfoBlock()
1037 RECORD(TYPE_VARIABLE_ARRAY); in WriteBlockInfoBlock()
1038 RECORD(TYPE_VECTOR); in WriteBlockInfoBlock()
1039 RECORD(TYPE_EXT_VECTOR); in WriteBlockInfoBlock()
1040 RECORD(TYPE_FUNCTION_NO_PROTO); in WriteBlockInfoBlock()
1041 RECORD(TYPE_FUNCTION_PROTO); in WriteBlockInfoBlock()
1042 RECORD(TYPE_TYPEDEF); in WriteBlockInfoBlock()
1043 RECORD(TYPE_TYPEOF_EXPR); in WriteBlockInfoBlock()
1044 RECORD(TYPE_TYPEOF); in WriteBlockInfoBlock()
1045 RECORD(TYPE_RECORD); in WriteBlockInfoBlock()
1046 RECORD(TYPE_ENUM); in WriteBlockInfoBlock()
1047 RECORD(TYPE_OBJC_INTERFACE); in WriteBlockInfoBlock()
1048 RECORD(TYPE_OBJC_OBJECT_POINTER); in WriteBlockInfoBlock()
1049 RECORD(TYPE_DECLTYPE); in WriteBlockInfoBlock()
1050 RECORD(TYPE_ELABORATED); in WriteBlockInfoBlock()
1051 RECORD(TYPE_SUBST_TEMPLATE_TYPE_PARM); in WriteBlockInfoBlock()
1052 RECORD(TYPE_UNRESOLVED_USING); in WriteBlockInfoBlock()
1053 RECORD(TYPE_INJECTED_CLASS_NAME); in WriteBlockInfoBlock()
1054 RECORD(TYPE_OBJC_OBJECT); in WriteBlockInfoBlock()
1055 RECORD(TYPE_TEMPLATE_TYPE_PARM); in WriteBlockInfoBlock()
1056 RECORD(TYPE_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1057 RECORD(TYPE_DEPENDENT_NAME); in WriteBlockInfoBlock()
1058 RECORD(TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1059 RECORD(TYPE_DEPENDENT_SIZED_ARRAY); in WriteBlockInfoBlock()
1060 RECORD(TYPE_PAREN); in WriteBlockInfoBlock()
1061 RECORD(TYPE_PACK_EXPANSION); in WriteBlockInfoBlock()
1062 RECORD(TYPE_ATTRIBUTED); in WriteBlockInfoBlock()
1063 RECORD(TYPE_SUBST_TEMPLATE_TYPE_PARM_PACK); in WriteBlockInfoBlock()
1064 RECORD(TYPE_AUTO); in WriteBlockInfoBlock()
1065 RECORD(TYPE_UNARY_TRANSFORM); in WriteBlockInfoBlock()
1066 RECORD(TYPE_ATOMIC); in WriteBlockInfoBlock()
1067 RECORD(TYPE_DECAYED); in WriteBlockInfoBlock()
1068 RECORD(TYPE_ADJUSTED); in WriteBlockInfoBlock()
1069 RECORD(LOCAL_REDECLARATIONS); in WriteBlockInfoBlock()
1070 RECORD(DECL_TYPEDEF); in WriteBlockInfoBlock()
1071 RECORD(DECL_TYPEALIAS); in WriteBlockInfoBlock()
1072 RECORD(DECL_ENUM); in WriteBlockInfoBlock()
1073 RECORD(DECL_RECORD); in WriteBlockInfoBlock()
1074 RECORD(DECL_ENUM_CONSTANT); in WriteBlockInfoBlock()
1075 RECORD(DECL_FUNCTION); in WriteBlockInfoBlock()
1076 RECORD(DECL_OBJC_METHOD); in WriteBlockInfoBlock()
1077 RECORD(DECL_OBJC_INTERFACE); in WriteBlockInfoBlock()
1078 RECORD(DECL_OBJC_PROTOCOL); in WriteBlockInfoBlock()
1079 RECORD(DECL_OBJC_IVAR); in WriteBlockInfoBlock()
1080 RECORD(DECL_OBJC_AT_DEFS_FIELD); in WriteBlockInfoBlock()
1081 RECORD(DECL_OBJC_CATEGORY); in WriteBlockInfoBlock()
1082 RECORD(DECL_OBJC_CATEGORY_IMPL); in WriteBlockInfoBlock()
1083 RECORD(DECL_OBJC_IMPLEMENTATION); in WriteBlockInfoBlock()
1084 RECORD(DECL_OBJC_COMPATIBLE_ALIAS); in WriteBlockInfoBlock()
1085 RECORD(DECL_OBJC_PROPERTY); in WriteBlockInfoBlock()
1086 RECORD(DECL_OBJC_PROPERTY_IMPL); in WriteBlockInfoBlock()
1087 RECORD(DECL_FIELD); in WriteBlockInfoBlock()
1088 RECORD(DECL_MS_PROPERTY); in WriteBlockInfoBlock()
1089 RECORD(DECL_VAR); in WriteBlockInfoBlock()
1090 RECORD(DECL_IMPLICIT_PARAM); in WriteBlockInfoBlock()
1091 RECORD(DECL_PARM_VAR); in WriteBlockInfoBlock()
1092 RECORD(DECL_FILE_SCOPE_ASM); in WriteBlockInfoBlock()
1093 RECORD(DECL_BLOCK); in WriteBlockInfoBlock()
1094 RECORD(DECL_CONTEXT_LEXICAL); in WriteBlockInfoBlock()
1095 RECORD(DECL_CONTEXT_VISIBLE); in WriteBlockInfoBlock()
1096 RECORD(DECL_NAMESPACE); in WriteBlockInfoBlock()
1097 RECORD(DECL_NAMESPACE_ALIAS); in WriteBlockInfoBlock()
1098 RECORD(DECL_USING); in WriteBlockInfoBlock()
1099 RECORD(DECL_USING_SHADOW); in WriteBlockInfoBlock()
1100 RECORD(DECL_USING_DIRECTIVE); in WriteBlockInfoBlock()
1101 RECORD(DECL_UNRESOLVED_USING_VALUE); in WriteBlockInfoBlock()
1102 RECORD(DECL_UNRESOLVED_USING_TYPENAME); in WriteBlockInfoBlock()
1103 RECORD(DECL_LINKAGE_SPEC); in WriteBlockInfoBlock()
1104 RECORD(DECL_CXX_RECORD); in WriteBlockInfoBlock()
1105 RECORD(DECL_CXX_METHOD); in WriteBlockInfoBlock()
1106 RECORD(DECL_CXX_CONSTRUCTOR); in WriteBlockInfoBlock()
1107 RECORD(DECL_CXX_INHERITED_CONSTRUCTOR); in WriteBlockInfoBlock()
1108 RECORD(DECL_CXX_DESTRUCTOR); in WriteBlockInfoBlock()
1109 RECORD(DECL_CXX_CONVERSION); in WriteBlockInfoBlock()
1110 RECORD(DECL_ACCESS_SPEC); in WriteBlockInfoBlock()
1111 RECORD(DECL_FRIEND); in WriteBlockInfoBlock()
1112 RECORD(DECL_FRIEND_TEMPLATE); in WriteBlockInfoBlock()
1113 RECORD(DECL_CLASS_TEMPLATE); in WriteBlockInfoBlock()
1114 RECORD(DECL_CLASS_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1115 RECORD(DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION); in WriteBlockInfoBlock()
1116 RECORD(DECL_VAR_TEMPLATE); in WriteBlockInfoBlock()
1117 RECORD(DECL_VAR_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1118 RECORD(DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION); in WriteBlockInfoBlock()
1119 RECORD(DECL_FUNCTION_TEMPLATE); in WriteBlockInfoBlock()
1120 RECORD(DECL_TEMPLATE_TYPE_PARM); in WriteBlockInfoBlock()
1121 RECORD(DECL_NON_TYPE_TEMPLATE_PARM); in WriteBlockInfoBlock()
1122 RECORD(DECL_TEMPLATE_TEMPLATE_PARM); in WriteBlockInfoBlock()
1123 RECORD(DECL_TYPE_ALIAS_TEMPLATE); in WriteBlockInfoBlock()
1124 RECORD(DECL_STATIC_ASSERT); in WriteBlockInfoBlock()
1125 RECORD(DECL_CXX_BASE_SPECIFIERS); in WriteBlockInfoBlock()
1126 RECORD(DECL_CXX_CTOR_INITIALIZERS); in WriteBlockInfoBlock()
1127 RECORD(DECL_INDIRECTFIELD); in WriteBlockInfoBlock()
1128 RECORD(DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK); in WriteBlockInfoBlock()
1129 RECORD(DECL_EXPANDED_TEMPLATE_TEMPLATE_PARM_PACK); in WriteBlockInfoBlock()
1130 RECORD(DECL_CLASS_SCOPE_FUNCTION_SPECIALIZATION); in WriteBlockInfoBlock()
1131 RECORD(DECL_IMPORT); in WriteBlockInfoBlock()
1132 RECORD(DECL_OMP_THREADPRIVATE); in WriteBlockInfoBlock()
1133 RECORD(DECL_EMPTY); in WriteBlockInfoBlock()
1134 RECORD(DECL_OBJC_TYPE_PARAM); in WriteBlockInfoBlock()
1135 RECORD(DECL_OMP_CAPTUREDEXPR); in WriteBlockInfoBlock()
1136 RECORD(DECL_PRAGMA_COMMENT); in WriteBlockInfoBlock()
1137 RECORD(DECL_PRAGMA_DETECT_MISMATCH); in WriteBlockInfoBlock()
1138 RECORD(DECL_OMP_DECLARE_REDUCTION); in WriteBlockInfoBlock()
1141 AddStmtsExprs(Stream, Record); in WriteBlockInfoBlock()
1144 RECORD(PPD_MACRO_EXPANSION); in WriteBlockInfoBlock()
1145 RECORD(PPD_MACRO_DEFINITION); in WriteBlockInfoBlock()
1146 RECORD(PPD_INCLUSION_DIRECTIVE); in WriteBlockInfoBlock()
1150 RECORD(EXTENSION_METADATA); in WriteBlockInfoBlock()
1152 #undef RECORD in WriteBlockInfoBlock()
1231 RecordData Record; in WriteControlBlock() local
1248 RecordData::value_type Record[] = {METADATA, VERSION_MAJOR, VERSION_MINOR, in WriteControlBlock() local
1252 Stream.EmitRecordWithBlob(MetadataAbbrevCode, Record, in WriteControlBlock()
1262 RecordData::value_type Record[] = {Signature}; in WriteControlBlock() local
1263 Stream.EmitRecord(SIGNATURE, Record); in WriteControlBlock()
1271 RecordData::value_type Record[] = {MODULE_NAME}; in WriteControlBlock() local
1272 Stream.EmitRecordWithBlob(AbbrevCode, Record, WritingModule->Name); in WriteControlBlock()
1292 RecordData::value_type Record[] = {MODULE_DIRECTORY}; in WriteControlBlock() local
1293 Stream.EmitRecordWithBlob(AbbrevCode, Record, BaseDir); in WriteControlBlock()
1305 Record.clear(); in WriteControlBlock()
1310 AddPath(Map.getModuleMapFileForUniquing(WritingModule)->getName(), Record); in WriteControlBlock()
1315 Record.push_back(AdditionalModMaps->size()); in WriteControlBlock()
1317 AddPath(F->getName(), Record); in WriteControlBlock()
1319 Record.push_back(0); in WriteControlBlock()
1322 Stream.EmitRecord(MODULE_MAP_FILE, Record); in WriteControlBlock()
1328 Record.clear(); in WriteControlBlock()
1335 Record.push_back((unsigned)M->Kind); // FIXME: Stable encoding in WriteControlBlock()
1336 AddSourceLocation(M->ImportLoc, Record); in WriteControlBlock()
1337 Record.push_back(M->File->getSize()); in WriteControlBlock()
1338 Record.push_back(getTimestampForOutput(M->File)); in WriteControlBlock()
1339 Record.push_back(M->Signature); in WriteControlBlock()
1340 AddPath(M->FileName, Record); in WriteControlBlock()
1342 Stream.EmitRecord(IMPORTS, Record); in WriteControlBlock()
1349 Record.clear(); in WriteControlBlock()
1352 Record.push_back(LangOpts.Name); in WriteControlBlock()
1354 Record.push_back(static_cast<unsigned>(LangOpts.get##Name())); in WriteControlBlock()
1357 Record.push_back(LangOpts.Sanitize.has(SanitizerKind::ID)); in WriteControlBlock()
1360 Record.push_back(LangOpts.ModuleFeatures.size()); in WriteControlBlock()
1362 AddString(Feature, Record); in WriteControlBlock()
1364 Record.push_back((unsigned) LangOpts.ObjCRuntime.getKind()); in WriteControlBlock()
1365 AddVersionTuple(LangOpts.ObjCRuntime.getVersion(), Record); in WriteControlBlock()
1367 AddString(LangOpts.CurrentModule, Record); in WriteControlBlock()
1370 Record.push_back(LangOpts.CommentOpts.BlockCommandNames.size()); in WriteControlBlock()
1372 AddString(I, Record); in WriteControlBlock()
1374 Record.push_back(LangOpts.CommentOpts.ParseAllComments); in WriteControlBlock()
1377 Record.push_back(LangOpts.OMPTargetTriples.size()); in WriteControlBlock()
1379 AddString(T.getTriple(), Record); in WriteControlBlock()
1381 AddString(LangOpts.OMPHostIRFile, Record); in WriteControlBlock()
1383 Stream.EmitRecord(LANGUAGE_OPTIONS, Record); in WriteControlBlock()
1386 Record.clear(); in WriteControlBlock()
1389 AddString(TargetOpts.Triple, Record); in WriteControlBlock()
1390 AddString(TargetOpts.CPU, Record); in WriteControlBlock()
1391 AddString(TargetOpts.ABI, Record); in WriteControlBlock()
1392 Record.push_back(TargetOpts.FeaturesAsWritten.size()); in WriteControlBlock()
1394 AddString(TargetOpts.FeaturesAsWritten[I], Record); in WriteControlBlock()
1396 Record.push_back(TargetOpts.Features.size()); in WriteControlBlock()
1398 AddString(TargetOpts.Features[I], Record); in WriteControlBlock()
1400 Stream.EmitRecord(TARGET_OPTIONS, Record); in WriteControlBlock()
1403 Record.clear(); in WriteControlBlock()
1406 #define DIAGOPT(Name, Bits, Default) Record.push_back(DiagOpts.Name); in WriteControlBlock()
1408 Record.push_back(static_cast<unsigned>(DiagOpts.get##Name())); in WriteControlBlock()
1410 Record.push_back(DiagOpts.Warnings.size()); in WriteControlBlock()
1412 AddString(DiagOpts.Warnings[I], Record); in WriteControlBlock()
1413 Record.push_back(DiagOpts.Remarks.size()); in WriteControlBlock()
1415 AddString(DiagOpts.Remarks[I], Record); in WriteControlBlock()
1418 Stream.EmitRecord(DIAGNOSTIC_OPTIONS, Record); in WriteControlBlock()
1421 Record.clear(); in WriteControlBlock()
1424 AddString(FSOpts.WorkingDir, Record); in WriteControlBlock()
1425 Stream.EmitRecord(FILE_SYSTEM_OPTIONS, Record); in WriteControlBlock()
1428 Record.clear(); in WriteControlBlock()
1431 AddString(HSOpts.Sysroot, Record); in WriteControlBlock()
1434 Record.push_back(HSOpts.UserEntries.size()); in WriteControlBlock()
1437 AddString(Entry.Path, Record); in WriteControlBlock()
1438 Record.push_back(static_cast<unsigned>(Entry.Group)); in WriteControlBlock()
1439 Record.push_back(Entry.IsFramework); in WriteControlBlock()
1440 Record.push_back(Entry.IgnoreSysRoot); in WriteControlBlock()
1444 Record.push_back(HSOpts.SystemHeaderPrefixes.size()); in WriteControlBlock()
1446 AddString(HSOpts.SystemHeaderPrefixes[I].Prefix, Record); in WriteControlBlock()
1447 Record.push_back(HSOpts.SystemHeaderPrefixes[I].IsSystemHeader); in WriteControlBlock()
1450 AddString(HSOpts.ResourceDir, Record); in WriteControlBlock()
1451 AddString(HSOpts.ModuleCachePath, Record); in WriteControlBlock()
1452 AddString(HSOpts.ModuleUserBuildPath, Record); in WriteControlBlock()
1453 Record.push_back(HSOpts.DisableModuleHash); in WriteControlBlock()
1454 Record.push_back(HSOpts.UseBuiltinIncludes); in WriteControlBlock()
1455 Record.push_back(HSOpts.UseStandardSystemIncludes); in WriteControlBlock()
1456 Record.push_back(HSOpts.UseStandardCXXIncludes); in WriteControlBlock()
1457 Record.push_back(HSOpts.UseLibcxx); in WriteControlBlock()
1459 AddString(PP.getHeaderSearchInfo().getModuleCachePath(), Record); in WriteControlBlock()
1460 Stream.EmitRecord(HEADER_SEARCH_OPTIONS, Record); in WriteControlBlock()
1463 Record.clear(); in WriteControlBlock()
1467 Record.push_back(PPOpts.Macros.size()); in WriteControlBlock()
1469 AddString(PPOpts.Macros[I].first, Record); in WriteControlBlock()
1470 Record.push_back(PPOpts.Macros[I].second); in WriteControlBlock()
1474 Record.push_back(PPOpts.Includes.size()); in WriteControlBlock()
1476 AddString(PPOpts.Includes[I], Record); in WriteControlBlock()
1479 Record.push_back(PPOpts.MacroIncludes.size()); in WriteControlBlock()
1481 AddString(PPOpts.MacroIncludes[I], Record); in WriteControlBlock()
1483 Record.push_back(PPOpts.UsePredefines); in WriteControlBlock()
1484 // Detailed record is important since it is used for the module cache hash. in WriteControlBlock()
1485 Record.push_back(PPOpts.DetailedRecord); in WriteControlBlock()
1486 AddString(PPOpts.ImplicitPCHInclude, Record); in WriteControlBlock()
1487 AddString(PPOpts.ImplicitPTHInclude, Record); in WriteControlBlock()
1488 Record.push_back(static_cast<unsigned>(PPOpts.ObjCXXARCStandardLibrary)); in WriteControlBlock()
1489 Stream.EmitRecord(PREPROCESSOR_OPTIONS, Record); in WriteControlBlock()
1503 Record.clear(); in WriteControlBlock()
1504 Record.push_back(ORIGINAL_FILE); in WriteControlBlock()
1505 Record.push_back(SM.getMainFileID().getOpaqueValue()); in WriteControlBlock()
1506 EmitRecordWithPath(FileAbbrevCode, Record, MainFile->getName()); in WriteControlBlock()
1509 Record.clear(); in WriteControlBlock()
1510 Record.push_back(SM.getMainFileID().getOpaqueValue()); in WriteControlBlock()
1511 Stream.EmitRecord(ORIGINAL_FILE_ID, Record); in WriteControlBlock()
1525 RecordData::value_type Record[] = {ORIGINAL_PCH_DIR}; in WriteControlBlock() local
1526 Stream.EmitRecordWithBlob(AbbrevCode, Record, origDir); in WriteControlBlock()
1597 // Record this entry's offset. in WriteInputFiles()
1607 RecordData::value_type Record[] = { in WriteInputFiles() local
1615 EmitRecordWithPath(IFAbbrevCode, Record, Entry.File->getName()); in WriteInputFiles()
1630 RecordData::value_type Record[] = {INPUT_FILE_OFFSETS, in WriteInputFiles() local
1632 Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, bytes(InputFileOffsets)); in WriteInputFiles()
1796 // record of that fact. in EmitData()
1882 RecordData::value_type Record[] = {HEADER_SEARCH_TABLE, BucketOffset, in WriteHeaderSearch() local
1885 Stream.EmitRecordWithBlob(TableAbbrev, Record, TableData); in WriteHeaderSearch()
1902 RecordData Record; in WriteSourceManagerBlock() local
1927 // Record the offset of this source-location entry. in WriteSourceManagerBlock()
1930 // Figure out which record code to use. in WriteSourceManagerBlock()
1940 Record.clear(); in WriteSourceManagerBlock()
1941 Record.push_back(Code); in WriteSourceManagerBlock()
1944 Record.push_back(SLoc->getOffset() - 2); in WriteSourceManagerBlock()
1947 AddSourceLocation(File.getIncludeLoc(), Record); in WriteSourceManagerBlock()
1948 Record.push_back(File.getFileCharacteristic()); // FIXME: stable encoding in WriteSourceManagerBlock()
1949 Record.push_back(File.hasLineDirectives()); in WriteSourceManagerBlock()
1959 Record.push_back(InputFileIDs[Content->OrigEntry]); in WriteSourceManagerBlock()
1961 Record.push_back(File.NumCreatedFIDs); in WriteSourceManagerBlock()
1965 Record.push_back(FDI->second->FirstDeclIndex); in WriteSourceManagerBlock()
1966 Record.push_back(FDI->second->DeclIDs.size()); in WriteSourceManagerBlock()
1968 Record.push_back(0); in WriteSourceManagerBlock()
1969 Record.push_back(0); in WriteSourceManagerBlock()
1972 Stream.EmitRecordWithAbbrev(SLocFileAbbrv, Record); in WriteSourceManagerBlock()
1986 Stream.EmitRecordWithBlob(SLocBufferAbbrv, Record, in WriteSourceManagerBlock()
2007 RecordData::value_type Record[] = {SM_SLOC_BUFFER_BLOB_COMPRESSED, in WriteSourceManagerBlock() local
2009 Stream.EmitRecordWithBlob(SLocBufferBlobCompressedAbbrv, Record, in WriteSourceManagerBlock()
2012 RecordData::value_type Record[] = {SM_SLOC_BUFFER_BLOB}; in WriteSourceManagerBlock() local
2013 Stream.EmitRecordWithBlob(SLocBufferBlobAbbrv, Record, Blob); in WriteSourceManagerBlock()
2019 AddSourceLocation(Expansion.getSpellingLoc(), Record); in WriteSourceManagerBlock()
2020 AddSourceLocation(Expansion.getExpansionLocStart(), Record); in WriteSourceManagerBlock()
2024 Record); in WriteSourceManagerBlock()
2030 Record.push_back(NextOffset - SLoc->getOffset() - 1); in WriteSourceManagerBlock()
2031 Stream.EmitRecordWithAbbrev(SLocExpansionAbbrv, Record); in WriteSourceManagerBlock()
2051 RecordData::value_type Record[] = { in WriteSourceManagerBlock() local
2054 Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record, in WriteSourceManagerBlock()
2066 Record.clear(); in WriteSourceManagerBlock()
2076 AddPath(LineTable.getFilename(LE.FilenameID), Record); in WriteSourceManagerBlock()
2079 Record.push_back(0); in WriteSourceManagerBlock()
2088 Record.push_back(L.first.ID); in WriteSourceManagerBlock()
2091 Record.push_back(L.second.size()); in WriteSourceManagerBlock()
2093 Record.push_back(LE.FileOffset); in WriteSourceManagerBlock()
2094 Record.push_back(LE.LineNo); in WriteSourceManagerBlock()
2095 Record.push_back(FilenameMap[LE.FilenameID]); in WriteSourceManagerBlock()
2096 Record.push_back((unsigned)LE.FileKind); in WriteSourceManagerBlock()
2097 Record.push_back(LE.IncludeOffset); in WriteSourceManagerBlock()
2101 Stream.EmitRecord(SOURCE_MANAGER_LINE_TABLE, Record); in WriteSourceManagerBlock()
2134 RecordData Record; in WritePreprocessor() local
2139 RecordData::value_type Record[] = {PP.getCounterValue()}; in WritePreprocessor() local
2140 Stream.EmitRecord(PP_COUNTER_VALUE, Record); in WritePreprocessor()
2180 AddSourceLocation(MD->getLocation(), Record); in WritePreprocessor()
2181 Record.push_back(MD->getKind()); in WritePreprocessor()
2183 Record.push_back(getMacroRef(DefMD->getInfo(), Name)); in WritePreprocessor()
2185 Record.push_back(VisMD->isPublic()); in WritePreprocessor()
2198 // Emit a record indicating this submodule exports this macro. in WritePreprocessor()
2216 if (Record.empty() && !EmittedModuleMacros) in WritePreprocessor()
2220 Stream.EmitRecord(PP_MACRO_DIRECTIVE_HISTORY, Record); in WritePreprocessor()
2221 Record.clear(); in WritePreprocessor()
2242 // Record the local offset of this macro. in WritePreprocessor()
2253 AddIdentifierRef(Name, Record); in WritePreprocessor()
2254 Record.push_back(inferSubmoduleIDFromLocation(MI->getDefinitionLoc())); in WritePreprocessor()
2255 AddSourceLocation(MI->getDefinitionLoc(), Record); in WritePreprocessor()
2256 AddSourceLocation(MI->getDefinitionEndLoc(), Record); in WritePreprocessor()
2257 Record.push_back(MI->isUsed()); in WritePreprocessor()
2258 Record.push_back(MI->isUsedForHeaderGuard()); in WritePreprocessor()
2265 Record.push_back(MI->isC99Varargs()); in WritePreprocessor()
2266 Record.push_back(MI->isGNUVarargs()); in WritePreprocessor()
2267 Record.push_back(MI->hasCommaPasting()); in WritePreprocessor()
2268 Record.push_back(MI->getNumArgs()); in WritePreprocessor()
2270 AddIdentifierRef(Arg, Record); in WritePreprocessor()
2273 // If we have a detailed preprocessing record, record the macro definition in WritePreprocessor()
2276 Record.push_back(MacroDefinitions[PPRec->findMacroDefinition(MI)]); in WritePreprocessor()
2278 Stream.EmitRecord(Code, Record); in WritePreprocessor()
2279 Record.clear(); in WritePreprocessor()
2287 AddToken(Tok, Record); in WritePreprocessor()
2288 Stream.EmitRecord(PP_TOKEN, Record); in WritePreprocessor()
2289 Record.clear(); in WritePreprocessor()
2307 RecordData::value_type Record[] = {MACRO_OFFSET, MacroOffsets.size(), in WritePreprocessor() local
2309 Stream.EmitRecordWithBlob(MacroOffsetAbbrev, Record, bytes(MacroOffsets)); in WritePreprocessor()
2322 // If the preprocessor has a preprocessing record, emit it. in WritePreprocessorDetail()
2343 RecordData Record; in WritePreprocessorDetail() local
2348 Record.clear(); in WritePreprocessorDetail()
2354 // Record this macro definition's ID. in WritePreprocessorDetail()
2357 AddIdentifierRef(MD->getName(), Record); in WritePreprocessorDetail()
2358 Stream.EmitRecord(PPD_MACRO_DEFINITION, Record); in WritePreprocessorDetail()
2363 Record.push_back(ME->isBuiltinMacro()); in WritePreprocessorDetail()
2365 AddIdentifierRef(ME->getName(), Record); in WritePreprocessorDetail()
2367 Record.push_back(MacroDefinitions[ME->getDefinition()]); in WritePreprocessorDetail()
2368 Stream.EmitRecord(PPD_MACRO_EXPANSION, Record); in WritePreprocessorDetail()
2373 Record.push_back(PPD_INCLUSION_DIRECTIVE); in WritePreprocessorDetail()
2374 Record.push_back(ID->getFileName().size()); in WritePreprocessorDetail()
2375 Record.push_back(ID->wasInQuotes()); in WritePreprocessorDetail()
2376 Record.push_back(static_cast<unsigned>(ID->getKind())); in WritePreprocessorDetail()
2377 Record.push_back(ID->importedModule()); in WritePreprocessorDetail()
2384 Stream.EmitRecordWithBlob(InclusionAbbrev, Record, Buffer); in WritePreprocessorDetail()
2392 // Write the offsets table for the preprocessing record. in WritePreprocessorDetail()
2405 RecordData::value_type Record[] = {PPD_ENTITIES_OFFSETS, in WritePreprocessorDetail() local
2408 Stream.EmitRecordWithBlob(PPEOffsetAbbrev, Record, in WritePreprocessorDetail()
2534 RecordData::value_type Record[] = {getNumberOfModules(WritingModule), in WriteSubmodules() local
2537 Stream.EmitRecord(SUBMODULE_METADATA, Record); in WriteSubmodules()
2555 RecordData::value_type Record[] = { in WriteSubmodules() local
2560 Stream.EmitRecordWithBlob(DefinitionAbbrev, Record, Mod->Name); in WriteSubmodules()
2565 RecordData::value_type Record[] = {SUBMODULE_REQUIRES, R.second}; in WriteSubmodules() local
2566 Stream.EmitRecordWithBlob(RequiresAbbrev, Record, R.first); in WriteSubmodules()
2571 RecordData::value_type Record[] = {SUBMODULE_UMBRELLA_HEADER}; in WriteSubmodules() local
2572 Stream.EmitRecordWithBlob(UmbrellaAbbrev, Record, in WriteSubmodules()
2575 RecordData::value_type Record[] = {SUBMODULE_UMBRELLA_DIR}; in WriteSubmodules() local
2576 Stream.EmitRecordWithBlob(UmbrellaDirAbbrev, Record, in WriteSubmodules()
2594 RecordData::value_type Record[] = {HL.RecordKind}; in WriteSubmodules() local
2596 Stream.EmitRecordWithBlob(HL.Abbrev, Record, H.NameAsWritten); in WriteSubmodules()
2602 RecordData::value_type Record[] = {SUBMODULE_TOPHEADER}; in WriteSubmodules() local
2604 Stream.EmitRecordWithBlob(TopHeaderAbbrev, Record, H->getName()); in WriteSubmodules()
2609 RecordData Record; in WriteSubmodules() local
2611 Record.push_back(getSubmoduleID(I)); in WriteSubmodules()
2612 Stream.EmitRecord(SUBMODULE_IMPORTS, Record); in WriteSubmodules()
2617 RecordData Record; in WriteSubmodules() local
2621 Record.push_back(getSubmoduleID(E.getPointer())); in WriteSubmodules()
2622 Record.push_back(E.getInt()); in WriteSubmodules()
2624 Stream.EmitRecord(SUBMODULE_EXPORTS, Record); in WriteSubmodules()
2633 RecordData::value_type Record[] = {SUBMODULE_LINK_LIBRARY, in WriteSubmodules() local
2635 Stream.EmitRecordWithBlob(LinkLibraryAbbrev, Record, LL.Library); in WriteSubmodules()
2642 RecordData::value_type Record[] = {SUBMODULE_CONFLICT, in WriteSubmodules() local
2644 Stream.EmitRecordWithBlob(ConflictAbbrev, Record, C.Message); in WriteSubmodules()
2649 RecordData::value_type Record[] = {SUBMODULE_CONFIG_MACRO}; in WriteSubmodules() local
2650 Stream.EmitRecordWithBlob(ConfigMacroAbbrev, Record, CM); in WriteSubmodules()
2697 RecordData Record; in WritePragmaDiagnosticMappings() local
2705 AddSourceLocation(point.Loc, Record); in WritePragmaDiagnosticMappings()
2707 Record.push_back(DiagStateID); in WritePragmaDiagnosticMappings()
2713 Record.push_back(I.first); in WritePragmaDiagnosticMappings()
2714 Record.push_back((unsigned)I.second.getSeverity()); in WritePragmaDiagnosticMappings()
2717 Record.push_back(-1); // mark the end of the diag/map pairs for this in WritePragmaDiagnosticMappings()
2722 if (!Record.empty()) in WritePragmaDiagnosticMappings()
2723 Stream.EmitRecord(DIAG_PRAGMA_MAPPINGS, Record); in WritePragmaDiagnosticMappings()
2739 RecordData Record; in WriteType() local
2742 ASTTypeWriter W(*this, Record); in WriteType()
2746 // Record the offset for this type. in WriteType()
2780 RecordData::value_type Record[] = {DECL_CONTEXT_LEXICAL}; in WriteDeclContextLexicalBlock() local
2781 Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record, in WriteDeclContextLexicalBlock()
2797 RecordData::value_type Record[] = {TYPE_OFFSET, TypeOffsets.size(), in WriteTypeDeclOffsets() local
2799 Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, bytes(TypeOffsets)); in WriteTypeDeclOffsets()
2810 RecordData::value_type Record[] = {DECL_OFFSET, DeclOffsets.size(), in WriteTypeDeclOffsets() local
2812 Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, bytes(DeclOffsets)); in WriteTypeDeclOffsets()
2838 RecordData::value_type Record[] = {FILE_SORTED_DECLS, in WriteFileDeclIDsMap() local
2840 Stream.EmitRecordWithBlob(AbbrevCode, Record, bytes(FileGroupedDeclIDs)); in WriteFileDeclIDsMap()
2846 RecordData Record; in WriteComments() local
2848 Record.clear(); in WriteComments()
2849 AddSourceRange(I->getSourceRange(), Record); in WriteComments()
2850 Record.push_back(I->getKind()); in WriteComments()
2851 Record.push_back(I->isTrailingComment()); in WriteComments()
2852 Record.push_back(I->isAlmostTrailingComment()); in WriteComments()
2853 Stream.EmitRecord(COMMENTS_RAW_COMMENT, Record); in WriteComments()
3048 RecordData::value_type Record[] = {METHOD_POOL, BucketOffset, in WriteSelectors() local
3050 Stream.EmitRecordWithBlob(MethodPoolAbbrev, Record, MethodPool); in WriteSelectors()
3063 RecordData::value_type Record[] = { in WriteSelectors() local
3066 Stream.EmitRecordWithBlob(SelectorOffsetAbbrev, Record, in WriteSelectors()
3078 RecordData Record; in WriteReferencedSelectorsPool() local
3079 ASTRecordWriter Writer(*this, Record); in WriteReferencedSelectorsPool()
3224 // Record the location of the key data. This is used when generating in EmitKey()
3353 RecordData::value_type Record[] = {IDENTIFIER_TABLE, BucketOffset}; in WriteIdentifierTable() local
3354 Stream.EmitRecordWithBlob(IDTableAbbrev, Record, IdentifierTable); in WriteIdentifierTable()
3370 RecordData::value_type Record[] = {IDENTIFIER_OFFSET, in WriteIdentifierTable() local
3373 Stream.EmitRecordWithBlob(IdentifierOffsetAbbrev, Record, in WriteIdentifierTable()
3713 // lookup results as an update record for it rather than including them in WriteDeclContextVisibleBlock()
3723 // Note that we need to emit an update record for the primary context. in WriteDeclContextVisibleBlock()
3788 RecordData::value_type Record[] = {DECL_CONTEXT_VISIBLE}; in WriteDeclContextVisibleBlock() local
3789 Stream.EmitRecordWithBlob(DeclContextVisibleLookupAbbrev, Record, in WriteDeclContextVisibleBlock()
3811 // update record; those are the only ones that will be checked on reload. in WriteDeclContextVisibleUpdate()
3816 RecordData::value_type Record[] = {UPDATE_VISIBLE, getDeclID(cast<Decl>(DC))}; in WriteDeclContextVisibleUpdate() local
3817 Stream.EmitRecordWithBlob(UpdateVisibleAbbrev, Record, LookupTable); in WriteDeclContextVisibleUpdate()
3822 RecordData::value_type Record[] = {Opts.fp_contract}; in WriteFPPragmaOptions() local
3823 Stream.EmitRecord(FP_PRAGMA_OPTIONS, Record); in WriteFPPragmaOptions()
3832 RecordData Record; in WriteOpenCLExtensions() local
3833 #define OPENCLEXT(nm) Record.push_back(Opts.nm); in WriteOpenCLExtensions()
3835 Stream.EmitRecord(OPENCL_EXTENSIONS, Record); in WriteOpenCLExtensions()
3863 // Record this interface -> category map. in WriteObjCCategories()
3881 RecordData::value_type Record[] = {OBJC_CATEGORIES_MAP, CategoriesMap.size()}; in WriteObjCCategories() local
3882 Stream.EmitRecordWithBlob(AbbrevID, Record, in WriteObjCCategories()
3896 RecordData Record; in WriteLateParsedTemplates() local
3900 AddDeclRef(FD, Record); in WriteLateParsedTemplates()
3901 AddDeclRef(LPT->D, Record); in WriteLateParsedTemplates()
3902 Record.push_back(LPT->Toks.size()); in WriteLateParsedTemplates()
3905 AddToken(Tok, Record); in WriteLateParsedTemplates()
3908 Stream.EmitRecord(LATE_PARSED_TEMPLATE, Record); in WriteLateParsedTemplates()
3913 RecordData Record; in WriteOptimizePragmaOptions() local
3915 AddSourceLocation(PragmaLoc, Record); in WriteOptimizePragmaOptions()
3916 Stream.EmitRecord(OPTIMIZE_PRAGMA_OPTIONS, Record); in WriteOptimizePragmaOptions()
3921 RecordData Record; in WriteMSStructPragmaOptions() local
3922 Record.push_back(SemaRef.MSStructPragmaOn ? PMSST_ON : PMSST_OFF); in WriteMSStructPragmaOptions()
3923 Stream.EmitRecord(MSSTRUCT_PRAGMA_OPTIONS, Record); in WriteMSStructPragmaOptions()
3929 RecordData Record; in WriteMSPointersToMembersPragmaOptions() local
3930 Record.push_back(SemaRef.MSPointerToMemberRepresentationMethod); in WriteMSPointersToMembersPragmaOptions()
3931 AddSourceLocation(SemaRef.ImplicitMSInheritanceAttrLoc, Record); in WriteMSPointersToMembersPragmaOptions()
3932 Stream.EmitRecord(POINTERS_TO_MEMBERS_PRAGMA_OPTIONS, Record); in WriteMSPointersToMembersPragmaOptions()
3940 // Emit the metadata record abbreviation. in WriteModuleFileExtension()
3950 // Emit the metadata record. in WriteModuleFileExtension()
3951 RecordData Record; in WriteModuleFileExtension() local
3953 Record.push_back(EXTENSION_METADATA); in WriteModuleFileExtension()
3954 Record.push_back(Metadata.MajorVersion); in WriteModuleFileExtension()
3955 Record.push_back(Metadata.MinorVersion); in WriteModuleFileExtension()
3956 Record.push_back(Metadata.BlockName.size()); in WriteModuleFileExtension()
3957 Record.push_back(Metadata.UserInfo.size()); in WriteModuleFileExtension()
3961 Stream.EmitRecordWithBlob(Abbrev, Record, Buffer); in WriteModuleFileExtension()
3974 /// \brief Emit the list of attributes to the specified record.
3976 auto &Record = *this; in AddAttributes() local
3977 Record.push_back(Attrs.size()); in AddAttributes()
3979 Record.push_back(A->getKind()); // FIXME: stable encoding, target attrs in AddAttributes()
3980 Record.AddSourceRange(A->getRange()); in AddAttributes()
3987 void ASTWriter::AddToken(const Token &Tok, RecordDataImpl &Record) { in AddToken() argument
3988 AddSourceLocation(Tok.getLocation(), Record); in AddToken()
3989 Record.push_back(Tok.getLength()); in AddToken()
3993 AddIdentifierRef(Tok.getIdentifierInfo(), Record); in AddToken()
3995 Record.push_back(Tok.getKind()); in AddToken()
3997 Record.push_back(Tok.getFlags()); in AddToken()
4000 void ASTWriter::AddString(StringRef Str, RecordDataImpl &Record) { in AddString() argument
4001 Record.push_back(Str.size()); in AddString()
4002 Record.insert(Record.end(), Str.begin(), Str.end()); in AddString()
4023 void ASTWriter::AddPath(StringRef Path, RecordDataImpl &Record) { in AddPath() argument
4026 AddString(FilePath, Record); in AddPath()
4029 void ASTWriter::EmitRecordWithPath(unsigned Abbrev, RecordDataRef Record, in EmitRecordWithPath() argument
4033 Stream.EmitRecordWithBlob(Abbrev, Record, FilePath); in EmitRecordWithPath()
4037 RecordDataImpl &Record) { in AddVersionTuple() argument
4038 Record.push_back(Version.getMajor()); in AddVersionTuple()
4040 Record.push_back(*Minor + 1); in AddVersionTuple()
4042 Record.push_back(0); in AddVersionTuple()
4044 Record.push_back(*Subminor + 1); in AddVersionTuple()
4046 Record.push_back(0); in AddVersionTuple()
4064 // Don't record offsets for selectors that are also available in a different in SetSelectorOffset()
4144 ASTWriter::RecordData &Record) { in AddLazyVectorDecls() argument
4147 Writer.AddDeclRef(*I, Record); in AddLazyVectorDecls()
4197 // Build a record containing all of the tentative definitions in this file, in in WriteASTCore()
4198 // TentativeDefinitions order. Generally, this record will be empty for in WriteASTCore()
4203 // Build a record containing all of the file scoped decls in this file. in WriteASTCore()
4209 // Build a record containing all of the delegating constructors we still need in WriteASTCore()
4228 // Build a record containing all of the ext_vector declarations. in WriteASTCore()
4232 // Build a record containing all of the VTable uses information. in WriteASTCore()
4242 // Build a record containing all of the UnusedLocalTypedefNameCandidates. in WriteASTCore()
4247 // Build a record containing all of pending implicit instantiations. in WriteASTCore()
4256 // Build a record containing some declaration references. in WriteASTCore()
4268 // Build a record containing all of the known namespaces. in WriteASTCore()
4275 // Build a record of all used, undefined objects that require definitions. in WriteASTCore()
4285 // Build a record containing all delete-expressions that we would like to in WriteASTCore()
4308 RecordData Record = {VERSION_MAJOR}; in WriteASTCore() local
4309 Stream.EmitRecord(METADATA_OLD_FORMAT, Record); in WriteASTCore()
4328 RecordData::value_type Record[] = {TU_UPDATE_LEXICAL}; in WriteASTCore() local
4329 Stream.EmitRecordWithBlob(TuUpdateLexicalAbbrev, Record, in WriteASTCore()
4349 ASTWriter::UpdateRecord &Record = DeclUpdates[TU]; in WriteASTCore() local
4350 if (Record.empty()) in WriteASTCore()
4351 Record.push_back(DeclUpdate(UPD_CXX_ADDED_ANONYMOUS_NAMESPACE, NS)); in WriteASTCore()
4405 // Form the record of special types. in WriteASTCore()
4471 RecordData::value_type Record[] = {MODULE_OFFSET_MAP}; in WriteASTCore() local
4472 Stream.EmitRecordWithBlob(ModuleOffsetMapAbbrev, Record, in WriteASTCore()
4521 // Write the record containing external, unnamed definitions. in WriteASTCore()
4525 // Write the record containing tentative definitions. in WriteASTCore()
4529 // Write the record containing unused file scoped decls. in WriteASTCore()
4533 // Write the record containing weak undeclared identifiers. in WriteASTCore()
4538 // Write the record containing ext_vector type names. in WriteASTCore()
4542 // Write the record containing VTable uses information. in WriteASTCore()
4546 // Write the record containing potentially unused local typedefs. in WriteASTCore()
4551 // Write the record containing pending implicit instantiations. in WriteASTCore()
4555 // Write the record containing declaration references of Sema. in WriteASTCore()
4559 // Write the record containing CUDA-specific declaration references. in WriteASTCore()
4630 RecordData::value_type Record[] = { in WriteASTCore() local
4632 Stream.EmitRecord(STATISTICS, Record); in WriteASTCore()
4654 ASTRecordWriter Record(*this, RecordData); in WriteDeclUpdatesBlocks() local
4663 Record.push_back(Kind); in WriteDeclUpdatesBlocks()
4670 Record.push_back(GetDeclRef(Update.getDecl())); in WriteDeclUpdatesBlocks()
4677 Record.AddSourceLocation(Update.getLoc()); in WriteDeclUpdatesBlocks()
4681 Record.AddStmt(const_cast<Expr *>( in WriteDeclUpdatesBlocks()
4688 Record.AddCXXDefinitionData(RD); in WriteDeclUpdatesBlocks()
4689 Record.AddOffset(WriteDeclContextLexicalBlock( in WriteDeclUpdatesBlocks()
4696 Record.push_back(MSInfo->getTemplateSpecializationKind()); in WriteDeclUpdatesBlocks()
4697 Record.AddSourceLocation(MSInfo->getPointOfInstantiation()); in WriteDeclUpdatesBlocks()
4700 Record.push_back(Spec->getTemplateSpecializationKind()); in WriteDeclUpdatesBlocks()
4701 Record.AddSourceLocation(Spec->getPointOfInstantiation()); in WriteDeclUpdatesBlocks()
4704 // specialization. If so, record which one. in WriteDeclUpdatesBlocks()
4708 Record.push_back(true); in WriteDeclUpdatesBlocks()
4709 Record.AddDeclRef(PartialSpec); in WriteDeclUpdatesBlocks()
4710 Record.AddTemplateArgumentList( in WriteDeclUpdatesBlocks()
4713 Record.push_back(false); in WriteDeclUpdatesBlocks()
4716 Record.push_back(RD->getTagKind()); in WriteDeclUpdatesBlocks()
4717 Record.AddSourceLocation(RD->getLocation()); in WriteDeclUpdatesBlocks()
4718 Record.AddSourceLocation(RD->getLocStart()); in WriteDeclUpdatesBlocks()
4719 Record.AddSourceLocation(RD->getRBraceLoc()); in WriteDeclUpdatesBlocks()
4722 Record.push_back(D->hasAttrs()); in WriteDeclUpdatesBlocks()
4724 Record.AddAttributes(D->getAttrs()); in WriteDeclUpdatesBlocks()
4731 Record.AddDeclRef(Update.getDecl()); in WriteDeclUpdatesBlocks()
4737 Record); in WriteDeclUpdatesBlocks()
4741 Record.push_back(GetOrCreateTypeID(Update.getType())); in WriteDeclUpdatesBlocks()
4749 Record.push_back(Update.getNumber()); in WriteDeclUpdatesBlocks()
4753 Record.AddSourceRange( in WriteDeclUpdatesBlocks()
4758 Record.AddSourceRange( in WriteDeclUpdatesBlocks()
4763 Record.push_back(getSubmoduleID(Update.getModule())); in WriteDeclUpdatesBlocks()
4767 Record.AddAttributes(llvm::makeArrayRef(Update.getAttr())); in WriteDeclUpdatesBlocks()
4774 Record.push_back(UPD_CXX_ADDED_FUNCTION_DEFINITION); in WriteDeclUpdatesBlocks()
4775 Record.push_back(Def->isInlined()); in WriteDeclUpdatesBlocks()
4776 Record.AddSourceLocation(Def->getInnerLocStart()); in WriteDeclUpdatesBlocks()
4777 Record.AddFunctionDefinition(Def); in WriteDeclUpdatesBlocks()
4781 OffsetsRecord.push_back(Record.Emit(DECL_UPDATES)); in WriteDeclUpdatesBlocks()
4785 void ASTWriter::AddSourceLocation(SourceLocation Loc, RecordDataImpl &Record) { in AddSourceLocation() argument
4787 Record.push_back((Raw << 1) | (Raw >> 31)); in AddSourceLocation()
4790 void ASTWriter::AddSourceRange(SourceRange Range, RecordDataImpl &Record) { in AddSourceRange() argument
4791 AddSourceLocation(Range.getBegin(), Record); in AddSourceRange()
4792 AddSourceLocation(Range.getEnd(), Record); in AddSourceRange()
4796 Record->push_back(Value.getBitWidth()); in AddAPInt()
4798 Record->append(Words, Words + Value.getNumWords()); in AddAPInt()
4802 Record->push_back(Value.isUnsigned()); in AddAPSInt()
4810 void ASTWriter::AddIdentifierRef(const IdentifierInfo *II, RecordDataImpl &Record) { in AddIdentifierRef() argument
4811 Record.push_back(getIdentifierRef(II)); in AddIdentifierRef()
4853 Record->push_back(Writer->getSelectorRef(SelRef)); in AddSelectorRef()
4913 Record->push_back(InfoHasSameExpr); in AddTemplateArgumentLoc()
4937 void ASTWriter::AddTypeRef(QualType T, RecordDataImpl &Record) { in AddTypeRef() argument
4938 Record.push_back(GetOrCreateTypeID(T)); in AddTypeRef()
4977 void ASTWriter::AddDeclRef(const Decl *D, RecordDataImpl &Record) { in AddDeclRef() argument
4978 Record.push_back(GetDeclRef(D)); in AddDeclRef()
5069 Record->push_back(Name.getNameKind()); in AddDeclarationName()
5088 Record->push_back(Name.getCXXOverloadedOperator()); in AddDeclarationName()
5161 Record->push_back(Info.NumTemplParamLists); in AddQualifierInfo()
5177 Record->push_back(NestedNames.size()); in AddNestedNameSpecifier()
5181 Record->push_back(Kind); in AddNestedNameSpecifier()
5198 Record->push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate); in AddNestedNameSpecifier()
5224 Record->push_back(NestedNames.size()); in AddNestedNameSpecifierLoc()
5229 Record->push_back(Kind); in AddNestedNameSpecifierLoc()
5248 Record->push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate); in AddNestedNameSpecifierLoc()
5267 Record->push_back(Kind); in AddTemplateName()
5275 Record->push_back(OvT->size()); in AddTemplateName()
5284 Record->push_back(QualT->hasTemplateKeyword()); in AddTemplateName()
5292 Record->push_back(DepT->isIdentifier()); in AddTemplateName()
5296 Record->push_back(DepT->getOperator()); in AddTemplateName()
5319 Record->push_back(Arg.getKind()); in AddTemplateArgument()
5343 Record->push_back(*NumExpansions + 1); in AddTemplateArgument()
5345 Record->push_back(0); in AddTemplateArgument()
5351 Record->push_back(Arg.pack_size()); in AddTemplateArgument()
5364 Record->push_back(TemplateParams->size()); in AddTemplateParameterList()
5373 Record->push_back(TemplateArgs->size()); in AddTemplateArgumentList()
5383 Record->push_back(ASTTemplArgList->NumTemplateArgs); in AddASTTemplateArgumentListInfo()
5390 Record->push_back(Set.size()); in AddUnresolvedSet()
5394 Record->push_back(I.getAccess()); in AddUnresolvedSet()
5400 Record->push_back(Base.isVirtual()); in AddCXXBaseSpecifier()
5401 Record->push_back(Base.isBaseOfClass()); in AddCXXBaseSpecifier()
5402 Record->push_back(Base.getAccessSpecifierAsWritten()); in AddCXXBaseSpecifier()
5403 Record->push_back(Base.getInheritConstructors()); in AddCXXBaseSpecifier()
5412 ASTWriter::RecordData Record; in EmitCXXBaseSpecifiers() local
5413 ASTRecordWriter Writer(W, Record); in EmitCXXBaseSpecifiers()
5430 ASTWriter::RecordData Record; in EmitCXXCtorInitializers() local
5431 ASTRecordWriter Writer(W, Record); in EmitCXXCtorInitializers()
5475 Record->push_back(Data.IsLambda); in AddCXXDefinitionData()
5476 Record->push_back(Data.UserDeclaredConstructor); in AddCXXDefinitionData()
5477 Record->push_back(Data.UserDeclaredSpecialMembers); in AddCXXDefinitionData()
5478 Record->push_back(Data.Aggregate); in AddCXXDefinitionData()
5479 Record->push_back(Data.PlainOldData); in AddCXXDefinitionData()
5480 Record->push_back(Data.Empty); in AddCXXDefinitionData()
5481 Record->push_back(Data.Polymorphic); in AddCXXDefinitionData()
5482 Record->push_back(Data.Abstract); in AddCXXDefinitionData()
5483 Record->push_back(Data.IsStandardLayout); in AddCXXDefinitionData()
5484 Record->push_back(Data.HasNoNonEmptyBases); in AddCXXDefinitionData()
5485 Record->push_back(Data.HasPrivateFields); in AddCXXDefinitionData()
5486 Record->push_back(Data.HasProtectedFields); in AddCXXDefinitionData()
5487 Record->push_back(Data.HasPublicFields); in AddCXXDefinitionData()
5488 Record->push_back(Data.HasMutableFields); in AddCXXDefinitionData()
5489 Record->push_back(Data.HasVariantMembers); in AddCXXDefinitionData()
5490 Record->push_back(Data.HasOnlyCMembers); in AddCXXDefinitionData()
5491 Record->push_back(Data.HasInClassInitializer); in AddCXXDefinitionData()
5492 Record->push_back(Data.HasUninitializedReferenceMember); in AddCXXDefinitionData()
5493 Record->push_back(Data.HasUninitializedFields); in AddCXXDefinitionData()
5494 Record->push_back(Data.HasInheritedConstructor); in AddCXXDefinitionData()
5495 Record->push_back(Data.HasInheritedAssignment); in AddCXXDefinitionData()
5496 Record->push_back(Data.NeedOverloadResolutionForMoveConstructor); in AddCXXDefinitionData()
5497 Record->push_back(Data.NeedOverloadResolutionForMoveAssignment); in AddCXXDefinitionData()
5498 Record->push_back(Data.NeedOverloadResolutionForDestructor); in AddCXXDefinitionData()
5499 Record->push_back(Data.DefaultedMoveConstructorIsDeleted); in AddCXXDefinitionData()
5500 Record->push_back(Data.DefaultedMoveAssignmentIsDeleted); in AddCXXDefinitionData()
5501 Record->push_back(Data.DefaultedDestructorIsDeleted); in AddCXXDefinitionData()
5502 Record->push_back(Data.HasTrivialSpecialMembers); in AddCXXDefinitionData()
5503 Record->push_back(Data.DeclaredNonTrivialSpecialMembers); in AddCXXDefinitionData()
5504 Record->push_back(Data.HasIrrelevantDestructor); in AddCXXDefinitionData()
5505 Record->push_back(Data.HasConstexprNonCopyMoveConstructor); in AddCXXDefinitionData()
5506 Record->push_back(Data.HasDefaultedDefaultConstructor); in AddCXXDefinitionData()
5507 Record->push_back(Data.DefaultedDefaultConstructorIsConstexpr); in AddCXXDefinitionData()
5508 Record->push_back(Data.HasConstexprDefaultConstructor); in AddCXXDefinitionData()
5509 Record->push_back(Data.HasNonLiteralTypeFieldsOrBases); in AddCXXDefinitionData()
5510 Record->push_back(Data.ComputedVisibleConversions); in AddCXXDefinitionData()
5511 Record->push_back(Data.UserProvidedDefaultConstructor); in AddCXXDefinitionData()
5512 Record->push_back(Data.DeclaredSpecialMembers); in AddCXXDefinitionData()
5513 Record->push_back(Data.ImplicitCopyConstructorHasConstParam); in AddCXXDefinitionData()
5514 Record->push_back(Data.ImplicitCopyAssignmentHasConstParam); in AddCXXDefinitionData()
5515 Record->push_back(Data.HasDeclaredCopyConstructorWithConstParam); in AddCXXDefinitionData()
5516 Record->push_back(Data.HasDeclaredCopyAssignmentWithConstParam); in AddCXXDefinitionData()
5519 Record->push_back(Data.NumBases); in AddCXXDefinitionData()
5524 Record->push_back(Data.NumVBases); in AddCXXDefinitionData()
5536 Record->push_back(Lambda.Dependent); in AddCXXDefinitionData()
5537 Record->push_back(Lambda.IsGenericLambda); in AddCXXDefinitionData()
5538 Record->push_back(Lambda.CaptureDefault); in AddCXXDefinitionData()
5539 Record->push_back(Lambda.NumCaptures); in AddCXXDefinitionData()
5540 Record->push_back(Lambda.NumExplicitCaptures); in AddCXXDefinitionData()
5541 Record->push_back(Lambda.ManglingNumber); in AddCXXDefinitionData()
5547 Record->push_back(Capture.isImplicit()); in AddCXXDefinitionData()
5548 Record->push_back(Capture.getCaptureKind()); in AddCXXDefinitionData()
5721 // chain, add an update record for it. in ResolvedExceptionSpec()
5802 // we can skip writing the update record. We make sure that isUsed() triggers in DeclarationMarkedUsed()
5836 const RecordDecl *Record) { in AddedAttributeToRecord() argument
5838 if (!Record->isFromASTFile()) in AddedAttributeToRecord()
5840 DeclUpdates[Record].push_back(DeclUpdate(UPD_ADDED_ATTR_TO_RECORD, Attr)); in AddedAttributeToRecord()