Lines Matching full:record

87     ASTWriter::RecordDataImpl &Record;  member in __anon84a3a1ce0111::ASTTypeWriter
90 /// \brief Type code that corresponds to the record generated.
92 /// \brief Abbreviation to use for the record, if any.
95 ASTTypeWriter(ASTWriter &Writer, ASTWriter::RecordDataImpl &Record) in ASTTypeWriter() argument
96 : Writer(Writer), Record(Record), Code(TYPE_EXT_QUAL) { } in ASTTypeWriter()
113 Writer.AddTypeRef(T->getElementType(), Record); in VisitComplexType()
118 Writer.AddTypeRef(T->getPointeeType(), Record); in VisitPointerType()
123 Writer.AddTypeRef(T->getOriginalType(), Record); in VisitDecayedType()
128 Writer.AddTypeRef(T->getOriginalType(), Record); in VisitAdjustedType()
129 Writer.AddTypeRef(T->getAdjustedType(), Record); in VisitAdjustedType()
134 Writer.AddTypeRef(T->getPointeeType(), Record); in VisitBlockPointerType()
139 Writer.AddTypeRef(T->getPointeeTypeAsWritten(), Record); in VisitLValueReferenceType()
140 Record.push_back(T->isSpelledAsLValue()); in VisitLValueReferenceType()
145 Writer.AddTypeRef(T->getPointeeTypeAsWritten(), Record); in VisitRValueReferenceType()
150 Writer.AddTypeRef(T->getPointeeType(), Record); in VisitMemberPointerType()
151 Writer.AddTypeRef(QualType(T->getClass(), 0), Record); in VisitMemberPointerType()
156 Writer.AddTypeRef(T->getElementType(), Record); in VisitArrayType()
157 Record.push_back(T->getSizeModifier()); // FIXME: stable values in VisitArrayType()
158 Record.push_back(T->getIndexTypeCVRQualifiers()); // FIXME: stable values in VisitArrayType()
163 Writer.AddAPInt(T->getSize(), Record); in VisitConstantArrayType()
174 Writer.AddSourceLocation(T->getLBracketLoc(), Record); in VisitVariableArrayType()
175 Writer.AddSourceLocation(T->getRBracketLoc(), Record); in VisitVariableArrayType()
181 Writer.AddTypeRef(T->getElementType(), Record); in VisitVectorType()
182 Record.push_back(T->getNumElements()); in VisitVectorType()
183 Record.push_back(T->getVectorKind()); in VisitVectorType()
193 Writer.AddTypeRef(T->getReturnType(), Record); in VisitFunctionType()
195 Record.push_back(C.getNoReturn()); in VisitFunctionType()
196 Record.push_back(C.getHasRegParm()); in VisitFunctionType()
197 Record.push_back(C.getRegParm()); in VisitFunctionType()
199 Record.push_back(C.getCC()); in VisitFunctionType()
200 Record.push_back(C.getProducesResult()); in VisitFunctionType()
212 ASTWriter::RecordDataImpl &Record) { in addExceptionSpec() argument
213 Record.push_back(T->getExceptionSpecType()); in addExceptionSpec()
215 Record.push_back(T->getNumExceptions()); in addExceptionSpec()
217 Writer.AddTypeRef(T->getExceptionType(I), Record); in addExceptionSpec()
221 Writer.AddDeclRef(T->getExceptionSpecDecl(), Record); in addExceptionSpec()
222 Writer.AddDeclRef(T->getExceptionSpecTemplate(), Record); in addExceptionSpec()
224 Writer.AddDeclRef(T->getExceptionSpecDecl(), Record); in addExceptionSpec()
231 Record.push_back(T->isVariadic()); in VisitFunctionProtoType()
232 Record.push_back(T->hasTrailingReturn()); in VisitFunctionProtoType()
233 Record.push_back(T->getTypeQuals()); in VisitFunctionProtoType()
234 Record.push_back(static_cast<unsigned>(T->getRefQualifier())); in VisitFunctionProtoType()
235 addExceptionSpec(Writer, T, Record); in VisitFunctionProtoType()
237 Record.push_back(T->getNumParams()); in VisitFunctionProtoType()
239 Writer.AddTypeRef(T->getParamType(I), Record); in VisitFunctionProtoType()
249 Writer.AddDeclRef(T->getDecl(), Record); in VisitUnresolvedUsingType()
254 Writer.AddDeclRef(T->getDecl(), Record); in VisitTypedefType()
256 Writer.AddTypeRef(T->getCanonicalTypeInternal(), Record); in VisitTypedefType()
266 Writer.AddTypeRef(T->getUnderlyingType(), Record); in VisitTypeOfType()
271 Writer.AddTypeRef(T->getUnderlyingType(), Record); in VisitDecltypeType()
277 Writer.AddTypeRef(T->getBaseType(), Record); in VisitUnaryTransformType()
278 Writer.AddTypeRef(T->getUnderlyingType(), Record); in VisitUnaryTransformType()
279 Record.push_back(T->getUTTKind()); in VisitUnaryTransformType()
284 Writer.AddTypeRef(T->getDeducedType(), Record); in VisitAutoType()
285 Record.push_back((unsigned)T->getKeyword()); in VisitAutoType()
287 Record.push_back(T->isDependentType()); in VisitAutoType()
292 Record.push_back(T->isDependentType()); in VisitTagType()
293 Writer.AddDeclRef(T->getDecl()->getCanonicalDecl(), Record); in VisitTagType()
309 Writer.AddTypeRef(T->getModifiedType(), Record); in VisitAttributedType()
310 Writer.AddTypeRef(T->getEquivalentType(), Record); in VisitAttributedType()
311 Record.push_back(T->getAttrKind()); in VisitAttributedType()
318 Writer.AddTypeRef(QualType(T->getReplacedParameter(), 0), Record); in VisitSubstTemplateTypeParmType()
319 Writer.AddTypeRef(T->getReplacementType(), Record); in VisitSubstTemplateTypeParmType()
326 Writer.AddTypeRef(QualType(T->getReplacedParameter(), 0), Record); in VisitSubstTemplateTypeParmPackType()
327 Writer.AddTemplateArgument(T->getArgumentPack(), Record); in VisitSubstTemplateTypeParmPackType()
334 Record.push_back(T->isDependentType()); in VisitTemplateSpecializationType()
335 Writer.AddTemplateName(T->getTemplateName(), Record); in VisitTemplateSpecializationType()
336 Record.push_back(T->getNumArgs()); in VisitTemplateSpecializationType()
338 Writer.AddTemplateArgument(ArgI, Record); in VisitTemplateSpecializationType()
342 Record); in VisitTemplateSpecializationType()
350 Writer.AddSourceRange(T->getBracketsRange(), Record); in VisitDependentSizedArrayType()
363 Record.push_back(T->getDepth()); in VisitTemplateTypeParmType()
364 Record.push_back(T->getIndex()); in VisitTemplateTypeParmType()
365 Record.push_back(T->isParameterPack()); in VisitTemplateTypeParmType()
366 Writer.AddDeclRef(T->getDecl(), Record); in VisitTemplateTypeParmType()
372 Record.push_back(T->getKeyword()); in VisitDependentNameType()
373 Writer.AddNestedNameSpecifier(T->getQualifier(), Record); in VisitDependentNameType()
374 Writer.AddIdentifierRef(T->getIdentifier(), Record); in VisitDependentNameType()
377 Record); in VisitDependentNameType()
384 Record.push_back(T->getKeyword()); in VisitDependentTemplateSpecializationType()
385 Writer.AddNestedNameSpecifier(T->getQualifier(), Record); in VisitDependentTemplateSpecializationType()
386 Writer.AddIdentifierRef(T->getIdentifier(), Record); in VisitDependentTemplateSpecializationType()
387 Record.push_back(T->getNumArgs()); in VisitDependentTemplateSpecializationType()
389 Writer.AddTemplateArgument(I, Record); in VisitDependentTemplateSpecializationType()
394 Writer.AddTypeRef(T->getPattern(), Record); in VisitPackExpansionType()
396 Record.push_back(*NumExpansions + 1); in VisitPackExpansionType()
398 Record.push_back(0); in VisitPackExpansionType()
403 Writer.AddTypeRef(T->getInnerType(), Record); in VisitParenType()
408 Record.push_back(T->getKeyword()); in VisitElaboratedType()
409 Writer.AddNestedNameSpecifier(T->getQualifier(), Record); in VisitElaboratedType()
410 Writer.AddTypeRef(T->getNamedType(), Record); in VisitElaboratedType()
415 Writer.AddDeclRef(T->getDecl()->getCanonicalDecl(), Record); in VisitInjectedClassNameType()
416 Writer.AddTypeRef(T->getInjectedSpecializationType(), Record); in VisitInjectedClassNameType()
421 Writer.AddDeclRef(T->getDecl()->getCanonicalDecl(), Record); in VisitObjCInterfaceType()
426 Writer.AddTypeRef(T->getBaseType(), Record); in VisitObjCObjectType()
427 Record.push_back(T->getTypeArgsAsWritten().size()); in VisitObjCObjectType()
429 Writer.AddTypeRef(TypeArg, Record); in VisitObjCObjectType()
430 Record.push_back(T->getNumProtocols()); in VisitObjCObjectType()
432 Writer.AddDeclRef(I, Record); in VisitObjCObjectType()
433 Record.push_back(T->isKindOfTypeAsWritten()); in VisitObjCObjectType()
439 Writer.AddTypeRef(T->getPointeeType(), Record); in VisitObjCObjectPointerType()
445 Writer.AddTypeRef(T->getValueType(), Record); in VisitAtomicType()
453 ASTWriter::RecordDataImpl &Record; member in __anon84a3a1ce0211::TypeLocWriter
456 TypeLocWriter(ASTWriter &Writer, ASTWriter::RecordDataImpl &Record) in TypeLocWriter() argument
457 : Writer(Writer), Record(Record) { } in TypeLocWriter()
474 Writer.AddSourceLocation(TL.getBuiltinLoc(), Record); in VisitBuiltinTypeLoc()
476 Record.push_back(TL.getWrittenTypeSpec()); in VisitBuiltinTypeLoc()
477 Record.push_back(TL.getWrittenSignSpec()); in VisitBuiltinTypeLoc()
478 Record.push_back(TL.getWrittenWidthSpec()); in VisitBuiltinTypeLoc()
479 Record.push_back(TL.hasModeAttr()); in VisitBuiltinTypeLoc()
483 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitComplexTypeLoc()
486 Writer.AddSourceLocation(TL.getStarLoc(), Record); in VisitPointerTypeLoc()
495 Writer.AddSourceLocation(TL.getCaretLoc(), Record); in VisitBlockPointerTypeLoc()
498 Writer.AddSourceLocation(TL.getAmpLoc(), Record); in VisitLValueReferenceTypeLoc()
501 Writer.AddSourceLocation(TL.getAmpAmpLoc(), Record); in VisitRValueReferenceTypeLoc()
504 Writer.AddSourceLocation(TL.getStarLoc(), Record); in VisitMemberPointerTypeLoc()
505 Writer.AddTypeSourceInfo(TL.getClassTInfo(), Record); in VisitMemberPointerTypeLoc()
508 Writer.AddSourceLocation(TL.getLBracketLoc(), Record); in VisitArrayTypeLoc()
509 Writer.AddSourceLocation(TL.getRBracketLoc(), Record); in VisitArrayTypeLoc()
510 Record.push_back(TL.getSizeExpr() ? 1 : 0); in VisitArrayTypeLoc()
529 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitDependentSizedExtVectorTypeLoc()
532 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitVectorTypeLoc()
535 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitExtVectorTypeLoc()
538 Writer.AddSourceLocation(TL.getLocalRangeBegin(), Record); in VisitFunctionTypeLoc()
539 Writer.AddSourceLocation(TL.getLParenLoc(), Record); in VisitFunctionTypeLoc()
540 Writer.AddSourceLocation(TL.getRParenLoc(), Record); in VisitFunctionTypeLoc()
541 Writer.AddSourceLocation(TL.getLocalRangeEnd(), Record); in VisitFunctionTypeLoc()
543 Writer.AddDeclRef(TL.getParam(i), Record); in VisitFunctionTypeLoc()
552 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitUnresolvedUsingTypeLoc()
555 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitTypedefTypeLoc()
558 Writer.AddSourceLocation(TL.getTypeofLoc(), Record); in VisitTypeOfExprTypeLoc()
559 Writer.AddSourceLocation(TL.getLParenLoc(), Record); in VisitTypeOfExprTypeLoc()
560 Writer.AddSourceLocation(TL.getRParenLoc(), Record); in VisitTypeOfExprTypeLoc()
563 Writer.AddSourceLocation(TL.getTypeofLoc(), Record); in VisitTypeOfTypeLoc()
564 Writer.AddSourceLocation(TL.getLParenLoc(), Record); in VisitTypeOfTypeLoc()
565 Writer.AddSourceLocation(TL.getRParenLoc(), Record); in VisitTypeOfTypeLoc()
566 Writer.AddTypeSourceInfo(TL.getUnderlyingTInfo(), Record); in VisitTypeOfTypeLoc()
569 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitDecltypeTypeLoc()
572 Writer.AddSourceLocation(TL.getKWLoc(), Record); in VisitUnaryTransformTypeLoc()
573 Writer.AddSourceLocation(TL.getLParenLoc(), Record); in VisitUnaryTransformTypeLoc()
574 Writer.AddSourceLocation(TL.getRParenLoc(), Record); in VisitUnaryTransformTypeLoc()
575 Writer.AddTypeSourceInfo(TL.getUnderlyingTInfo(), Record); in VisitUnaryTransformTypeLoc()
578 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitAutoTypeLoc()
581 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitRecordTypeLoc()
584 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitEnumTypeLoc()
587 Writer.AddSourceLocation(TL.getAttrNameLoc(), Record); in VisitAttributedTypeLoc()
590 Writer.AddSourceLocation(range.getBegin(), Record); in VisitAttributedTypeLoc()
591 Writer.AddSourceLocation(range.getEnd(), Record); in VisitAttributedTypeLoc()
595 Record.push_back(operand ? 1 : 0); in VisitAttributedTypeLoc()
598 Writer.AddSourceLocation(TL.getAttrEnumOperandLoc(), Record); in VisitAttributedTypeLoc()
602 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitTemplateTypeParmTypeLoc()
606 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitSubstTemplateTypeParmTypeLoc()
610 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitSubstTemplateTypeParmPackTypeLoc()
614 Writer.AddSourceLocation(TL.getTemplateKeywordLoc(), Record); in VisitTemplateSpecializationTypeLoc()
615 Writer.AddSourceLocation(TL.getTemplateNameLoc(), Record); in VisitTemplateSpecializationTypeLoc()
616 Writer.AddSourceLocation(TL.getLAngleLoc(), Record); in VisitTemplateSpecializationTypeLoc()
617 Writer.AddSourceLocation(TL.getRAngleLoc(), Record); in VisitTemplateSpecializationTypeLoc()
620 TL.getArgLoc(i).getLocInfo(), Record); in VisitTemplateSpecializationTypeLoc()
623 Writer.AddSourceLocation(TL.getLParenLoc(), Record); in VisitParenTypeLoc()
624 Writer.AddSourceLocation(TL.getRParenLoc(), Record); in VisitParenTypeLoc()
627 Writer.AddSourceLocation(TL.getElaboratedKeywordLoc(), Record); in VisitElaboratedTypeLoc()
628 Writer.AddNestedNameSpecifierLoc(TL.getQualifierLoc(), Record); in VisitElaboratedTypeLoc()
631 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitInjectedClassNameTypeLoc()
634 Writer.AddSourceLocation(TL.getElaboratedKeywordLoc(), Record); in VisitDependentNameTypeLoc()
635 Writer.AddNestedNameSpecifierLoc(TL.getQualifierLoc(), Record); in VisitDependentNameTypeLoc()
636 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitDependentNameTypeLoc()
640 Writer.AddSourceLocation(TL.getElaboratedKeywordLoc(), Record); in VisitDependentTemplateSpecializationTypeLoc()
641 Writer.AddNestedNameSpecifierLoc(TL.getQualifierLoc(), Record); in VisitDependentTemplateSpecializationTypeLoc()
642 Writer.AddSourceLocation(TL.getTemplateKeywordLoc(), Record); in VisitDependentTemplateSpecializationTypeLoc()
643 Writer.AddSourceLocation(TL.getTemplateNameLoc(), Record); in VisitDependentTemplateSpecializationTypeLoc()
644 Writer.AddSourceLocation(TL.getLAngleLoc(), Record); in VisitDependentTemplateSpecializationTypeLoc()
645 Writer.AddSourceLocation(TL.getRAngleLoc(), Record); in VisitDependentTemplateSpecializationTypeLoc()
648 TL.getArgLoc(I).getLocInfo(), Record); in VisitDependentTemplateSpecializationTypeLoc()
651 Writer.AddSourceLocation(TL.getEllipsisLoc(), Record); in VisitPackExpansionTypeLoc()
654 Writer.AddSourceLocation(TL.getNameLoc(), Record); in VisitObjCInterfaceTypeLoc()
657 Record.push_back(TL.hasBaseTypeAsWritten()); in VisitObjCObjectTypeLoc()
658 Writer.AddSourceLocation(TL.getTypeArgsLAngleLoc(), Record); in VisitObjCObjectTypeLoc()
659 Writer.AddSourceLocation(TL.getTypeArgsRAngleLoc(), Record); in VisitObjCObjectTypeLoc()
661 Writer.AddTypeSourceInfo(TL.getTypeArgTInfo(i), Record); in VisitObjCObjectTypeLoc()
662 Writer.AddSourceLocation(TL.getProtocolLAngleLoc(), Record); in VisitObjCObjectTypeLoc()
663 Writer.AddSourceLocation(TL.getProtocolRAngleLoc(), Record); in VisitObjCObjectTypeLoc()
665 Writer.AddSourceLocation(TL.getProtocolLoc(i), Record); in VisitObjCObjectTypeLoc()
668 Writer.AddSourceLocation(TL.getStarLoc(), Record); in VisitObjCObjectPointerTypeLoc()
671 Writer.AddSourceLocation(TL.getKWLoc(), Record); in VisitAtomicTypeLoc()
672 Writer.AddSourceLocation(TL.getLParenLoc(), Record); in VisitAtomicTypeLoc()
673 Writer.AddSourceLocation(TL.getRParenLoc(), Record); in VisitAtomicTypeLoc()
716 ASTWriter::RecordDataImpl &Record) { in EmitBlockID() argument
717 Record.clear(); in EmitBlockID()
718 Record.push_back(ID); in EmitBlockID()
719 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_SETBID, Record); in EmitBlockID()
724 Record.clear(); in EmitBlockID()
726 Record.push_back(*Name++); in EmitBlockID()
727 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_BLOCKNAME, Record); in EmitBlockID()
732 ASTWriter::RecordDataImpl &Record) { in EmitRecordID() argument
733 Record.clear(); in EmitRecordID()
734 Record.push_back(ID); in EmitRecordID()
736 Record.push_back(*Name++); in EmitRecordID()
737 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_SETRECORDNAME, Record); in EmitRecordID()
741 ASTWriter::RecordDataImpl &Record) { in AddStmtsExprs() argument
742 #define RECORD(X) EmitRecordID(X, #X, Stream, Record) in AddStmtsExprs() macro
743 RECORD(STMT_STOP); in AddStmtsExprs()
744 RECORD(STMT_NULL_PTR); in AddStmtsExprs()
745 RECORD(STMT_REF_PTR); in AddStmtsExprs()
746 RECORD(STMT_NULL); in AddStmtsExprs()
747 RECORD(STMT_COMPOUND); in AddStmtsExprs()
748 RECORD(STMT_CASE); in AddStmtsExprs()
749 RECORD(STMT_DEFAULT); in AddStmtsExprs()
750 RECORD(STMT_LABEL); in AddStmtsExprs()
751 RECORD(STMT_ATTRIBUTED); in AddStmtsExprs()
752 RECORD(STMT_IF); in AddStmtsExprs()
753 RECORD(STMT_SWITCH); in AddStmtsExprs()
754 RECORD(STMT_WHILE); in AddStmtsExprs()
755 RECORD(STMT_DO); in AddStmtsExprs()
756 RECORD(STMT_FOR); in AddStmtsExprs()
757 RECORD(STMT_GOTO); in AddStmtsExprs()
758 RECORD(STMT_INDIRECT_GOTO); in AddStmtsExprs()
759 RECORD(STMT_CONTINUE); in AddStmtsExprs()
760 RECORD(STMT_BREAK); in AddStmtsExprs()
761 RECORD(STMT_RETURN); in AddStmtsExprs()
762 RECORD(STMT_DECL); in AddStmtsExprs()
763 RECORD(STMT_GCCASM); in AddStmtsExprs()
764 RECORD(STMT_MSASM); in AddStmtsExprs()
765 RECORD(EXPR_PREDEFINED); in AddStmtsExprs()
766 RECORD(EXPR_DECL_REF); in AddStmtsExprs()
767 RECORD(EXPR_INTEGER_LITERAL); in AddStmtsExprs()
768 RECORD(EXPR_FLOATING_LITERAL); in AddStmtsExprs()
769 RECORD(EXPR_IMAGINARY_LITERAL); in AddStmtsExprs()
770 RECORD(EXPR_STRING_LITERAL); in AddStmtsExprs()
771 RECORD(EXPR_CHARACTER_LITERAL); in AddStmtsExprs()
772 RECORD(EXPR_PAREN); in AddStmtsExprs()
773 RECORD(EXPR_PAREN_LIST); in AddStmtsExprs()
774 RECORD(EXPR_UNARY_OPERATOR); in AddStmtsExprs()
775 RECORD(EXPR_SIZEOF_ALIGN_OF); in AddStmtsExprs()
776 RECORD(EXPR_ARRAY_SUBSCRIPT); in AddStmtsExprs()
777 RECORD(EXPR_CALL); in AddStmtsExprs()
778 RECORD(EXPR_MEMBER); in AddStmtsExprs()
779 RECORD(EXPR_BINARY_OPERATOR); in AddStmtsExprs()
780 RECORD(EXPR_COMPOUND_ASSIGN_OPERATOR); in AddStmtsExprs()
781 RECORD(EXPR_CONDITIONAL_OPERATOR); in AddStmtsExprs()
782 RECORD(EXPR_IMPLICIT_CAST); in AddStmtsExprs()
783 RECORD(EXPR_CSTYLE_CAST); in AddStmtsExprs()
784 RECORD(EXPR_COMPOUND_LITERAL); in AddStmtsExprs()
785 RECORD(EXPR_EXT_VECTOR_ELEMENT); in AddStmtsExprs()
786 RECORD(EXPR_INIT_LIST); in AddStmtsExprs()
787 RECORD(EXPR_DESIGNATED_INIT); in AddStmtsExprs()
788 RECORD(EXPR_DESIGNATED_INIT_UPDATE); in AddStmtsExprs()
789 RECORD(EXPR_IMPLICIT_VALUE_INIT); in AddStmtsExprs()
790 RECORD(EXPR_NO_INIT); in AddStmtsExprs()
791 RECORD(EXPR_VA_ARG); in AddStmtsExprs()
792 RECORD(EXPR_ADDR_LABEL); in AddStmtsExprs()
793 RECORD(EXPR_STMT); in AddStmtsExprs()
794 RECORD(EXPR_CHOOSE); in AddStmtsExprs()
795 RECORD(EXPR_GNU_NULL); in AddStmtsExprs()
796 RECORD(EXPR_SHUFFLE_VECTOR); in AddStmtsExprs()
797 RECORD(EXPR_BLOCK); in AddStmtsExprs()
798 RECORD(EXPR_GENERIC_SELECTION); in AddStmtsExprs()
799 RECORD(EXPR_OBJC_STRING_LITERAL); in AddStmtsExprs()
800 RECORD(EXPR_OBJC_BOXED_EXPRESSION); in AddStmtsExprs()
801 RECORD(EXPR_OBJC_ARRAY_LITERAL); in AddStmtsExprs()
802 RECORD(EXPR_OBJC_DICTIONARY_LITERAL); in AddStmtsExprs()
803 RECORD(EXPR_OBJC_ENCODE); in AddStmtsExprs()
804 RECORD(EXPR_OBJC_SELECTOR_EXPR); in AddStmtsExprs()
805 RECORD(EXPR_OBJC_PROTOCOL_EXPR); in AddStmtsExprs()
806 RECORD(EXPR_OBJC_IVAR_REF_EXPR); in AddStmtsExprs()
807 RECORD(EXPR_OBJC_PROPERTY_REF_EXPR); in AddStmtsExprs()
808 RECORD(EXPR_OBJC_KVC_REF_EXPR); in AddStmtsExprs()
809 RECORD(EXPR_OBJC_MESSAGE_EXPR); in AddStmtsExprs()
810 RECORD(STMT_OBJC_FOR_COLLECTION); in AddStmtsExprs()
811 RECORD(STMT_OBJC_CATCH); in AddStmtsExprs()
812 RECORD(STMT_OBJC_FINALLY); in AddStmtsExprs()
813 RECORD(STMT_OBJC_AT_TRY); in AddStmtsExprs()
814 RECORD(STMT_OBJC_AT_SYNCHRONIZED); in AddStmtsExprs()
815 RECORD(STMT_OBJC_AT_THROW); in AddStmtsExprs()
816 RECORD(EXPR_OBJC_BOOL_LITERAL); in AddStmtsExprs()
817 RECORD(STMT_CXX_CATCH); in AddStmtsExprs()
818 RECORD(STMT_CXX_TRY); in AddStmtsExprs()
819 RECORD(STMT_CXX_FOR_RANGE); in AddStmtsExprs()
820 RECORD(EXPR_CXX_OPERATOR_CALL); in AddStmtsExprs()
821 RECORD(EXPR_CXX_MEMBER_CALL); in AddStmtsExprs()
822 RECORD(EXPR_CXX_CONSTRUCT); in AddStmtsExprs()
823 RECORD(EXPR_CXX_TEMPORARY_OBJECT); in AddStmtsExprs()
824 RECORD(EXPR_CXX_STATIC_CAST); in AddStmtsExprs()
825 RECORD(EXPR_CXX_DYNAMIC_CAST); in AddStmtsExprs()
826 RECORD(EXPR_CXX_REINTERPRET_CAST); in AddStmtsExprs()
827 RECORD(EXPR_CXX_CONST_CAST); in AddStmtsExprs()
828 RECORD(EXPR_CXX_FUNCTIONAL_CAST); in AddStmtsExprs()
829 RECORD(EXPR_USER_DEFINED_LITERAL); in AddStmtsExprs()
830 RECORD(EXPR_CXX_STD_INITIALIZER_LIST); in AddStmtsExprs()
831 RECORD(EXPR_CXX_BOOL_LITERAL); in AddStmtsExprs()
832 RECORD(EXPR_CXX_NULL_PTR_LITERAL); in AddStmtsExprs()
833 RECORD(EXPR_CXX_TYPEID_EXPR); in AddStmtsExprs()
834 RECORD(EXPR_CXX_TYPEID_TYPE); in AddStmtsExprs()
835 RECORD(EXPR_CXX_THIS); in AddStmtsExprs()
836 RECORD(EXPR_CXX_THROW); in AddStmtsExprs()
837 RECORD(EXPR_CXX_DEFAULT_ARG); in AddStmtsExprs()
838 RECORD(EXPR_CXX_DEFAULT_INIT); in AddStmtsExprs()
839 RECORD(EXPR_CXX_BIND_TEMPORARY); in AddStmtsExprs()
840 RECORD(EXPR_CXX_SCALAR_VALUE_INIT); in AddStmtsExprs()
841 RECORD(EXPR_CXX_NEW); in AddStmtsExprs()
842 RECORD(EXPR_CXX_DELETE); in AddStmtsExprs()
843 RECORD(EXPR_CXX_PSEUDO_DESTRUCTOR); in AddStmtsExprs()
844 RECORD(EXPR_EXPR_WITH_CLEANUPS); in AddStmtsExprs()
845 RECORD(EXPR_CXX_DEPENDENT_SCOPE_MEMBER); in AddStmtsExprs()
846 RECORD(EXPR_CXX_DEPENDENT_SCOPE_DECL_REF); in AddStmtsExprs()
847 RECORD(EXPR_CXX_UNRESOLVED_CONSTRUCT); in AddStmtsExprs()
848 RECORD(EXPR_CXX_UNRESOLVED_MEMBER); in AddStmtsExprs()
849 RECORD(EXPR_CXX_UNRESOLVED_LOOKUP); in AddStmtsExprs()
850 RECORD(EXPR_CXX_EXPRESSION_TRAIT); in AddStmtsExprs()
851 RECORD(EXPR_CXX_NOEXCEPT); in AddStmtsExprs()
852 RECORD(EXPR_OPAQUE_VALUE); in AddStmtsExprs()
853 RECORD(EXPR_BINARY_CONDITIONAL_OPERATOR); in AddStmtsExprs()
854 RECORD(EXPR_TYPE_TRAIT); in AddStmtsExprs()
855 RECORD(EXPR_ARRAY_TYPE_TRAIT); in AddStmtsExprs()
856 RECORD(EXPR_PACK_EXPANSION); in AddStmtsExprs()
857 RECORD(EXPR_SIZEOF_PACK); in AddStmtsExprs()
858 RECORD(EXPR_SUBST_NON_TYPE_TEMPLATE_PARM); in AddStmtsExprs()
859 RECORD(EXPR_SUBST_NON_TYPE_TEMPLATE_PARM_PACK); in AddStmtsExprs()
860 RECORD(EXPR_FUNCTION_PARM_PACK); in AddStmtsExprs()
861 RECORD(EXPR_MATERIALIZE_TEMPORARY); in AddStmtsExprs()
862 RECORD(EXPR_CUDA_KERNEL_CALL); in AddStmtsExprs()
863 RECORD(EXPR_CXX_UUIDOF_EXPR); in AddStmtsExprs()
864 RECORD(EXPR_CXX_UUIDOF_TYPE); in AddStmtsExprs()
865 RECORD(EXPR_LAMBDA); in AddStmtsExprs()
866 #undef RECORD in AddStmtsExprs()
870 RecordData Record; in WriteBlockInfoBlock() local
873 #define BLOCK(X) EmitBlockID(X ## _ID, #X, Stream, Record) in WriteBlockInfoBlock()
874 #define RECORD(X) EmitRecordID(X, #X, Stream, Record) in WriteBlockInfoBlock() macro
878 RECORD(METADATA); in WriteBlockInfoBlock()
879 RECORD(SIGNATURE); in WriteBlockInfoBlock()
880 RECORD(MODULE_NAME); in WriteBlockInfoBlock()
881 RECORD(MODULE_DIRECTORY); in WriteBlockInfoBlock()
882 RECORD(MODULE_MAP_FILE); in WriteBlockInfoBlock()
883 RECORD(IMPORTS); in WriteBlockInfoBlock()
884 RECORD(ORIGINAL_FILE); in WriteBlockInfoBlock()
885 RECORD(ORIGINAL_PCH_DIR); in WriteBlockInfoBlock()
886 RECORD(ORIGINAL_FILE_ID); in WriteBlockInfoBlock()
887 RECORD(INPUT_FILE_OFFSETS); in WriteBlockInfoBlock()
890 RECORD(LANGUAGE_OPTIONS); in WriteBlockInfoBlock()
891 RECORD(TARGET_OPTIONS); in WriteBlockInfoBlock()
892 RECORD(DIAGNOSTIC_OPTIONS); in WriteBlockInfoBlock()
893 RECORD(FILE_SYSTEM_OPTIONS); in WriteBlockInfoBlock()
894 RECORD(HEADER_SEARCH_OPTIONS); in WriteBlockInfoBlock()
895 RECORD(PREPROCESSOR_OPTIONS); in WriteBlockInfoBlock()
898 RECORD(INPUT_FILE); in WriteBlockInfoBlock()
902 RECORD(TYPE_OFFSET); in WriteBlockInfoBlock()
903 RECORD(DECL_OFFSET); in WriteBlockInfoBlock()
904 RECORD(IDENTIFIER_OFFSET); in WriteBlockInfoBlock()
905 RECORD(IDENTIFIER_TABLE); in WriteBlockInfoBlock()
906 RECORD(EAGERLY_DESERIALIZED_DECLS); in WriteBlockInfoBlock()
907 RECORD(SPECIAL_TYPES); in WriteBlockInfoBlock()
908 RECORD(STATISTICS); in WriteBlockInfoBlock()
909 RECORD(TENTATIVE_DEFINITIONS); in WriteBlockInfoBlock()
910 RECORD(SELECTOR_OFFSETS); in WriteBlockInfoBlock()
911 RECORD(METHOD_POOL); in WriteBlockInfoBlock()
912 RECORD(PP_COUNTER_VALUE); in WriteBlockInfoBlock()
913 RECORD(SOURCE_LOCATION_OFFSETS); in WriteBlockInfoBlock()
914 RECORD(SOURCE_LOCATION_PRELOADS); in WriteBlockInfoBlock()
915 RECORD(EXT_VECTOR_DECLS); in WriteBlockInfoBlock()
916 RECORD(UNUSED_FILESCOPED_DECLS); in WriteBlockInfoBlock()
917 RECORD(PPD_ENTITIES_OFFSETS); in WriteBlockInfoBlock()
918 RECORD(VTABLE_USES); in WriteBlockInfoBlock()
919 RECORD(REFERENCED_SELECTOR_POOL); in WriteBlockInfoBlock()
920 RECORD(TU_UPDATE_LEXICAL); in WriteBlockInfoBlock()
921 RECORD(SEMA_DECL_REFS); in WriteBlockInfoBlock()
922 RECORD(WEAK_UNDECLARED_IDENTIFIERS); in WriteBlockInfoBlock()
923 RECORD(PENDING_IMPLICIT_INSTANTIATIONS); in WriteBlockInfoBlock()
924 RECORD(DECL_REPLACEMENTS); in WriteBlockInfoBlock()
925 RECORD(UPDATE_VISIBLE); in WriteBlockInfoBlock()
926 RECORD(DECL_UPDATE_OFFSETS); in WriteBlockInfoBlock()
927 RECORD(DECL_UPDATES); in WriteBlockInfoBlock()
928 RECORD(CXX_BASE_SPECIFIER_OFFSETS); in WriteBlockInfoBlock()
929 RECORD(DIAG_PRAGMA_MAPPINGS); in WriteBlockInfoBlock()
930 RECORD(CUDA_SPECIAL_DECL_REFS); in WriteBlockInfoBlock()
931 RECORD(HEADER_SEARCH_TABLE); in WriteBlockInfoBlock()
932 RECORD(FP_PRAGMA_OPTIONS); in WriteBlockInfoBlock()
933 RECORD(OPENCL_EXTENSIONS); in WriteBlockInfoBlock()
934 RECORD(DELEGATING_CTORS); in WriteBlockInfoBlock()
935 RECORD(KNOWN_NAMESPACES); in WriteBlockInfoBlock()
936 RECORD(MODULE_OFFSET_MAP); in WriteBlockInfoBlock()
937 RECORD(SOURCE_MANAGER_LINE_TABLE); in WriteBlockInfoBlock()
938 RECORD(OBJC_CATEGORIES_MAP); in WriteBlockInfoBlock()
939 RECORD(FILE_SORTED_DECLS); in WriteBlockInfoBlock()
940 RECORD(IMPORTED_MODULES); in WriteBlockInfoBlock()
941 RECORD(OBJC_CATEGORIES); in WriteBlockInfoBlock()
942 RECORD(MACRO_OFFSET); in WriteBlockInfoBlock()
943 RECORD(INTERESTING_IDENTIFIERS); in WriteBlockInfoBlock()
944 RECORD(UNDEFINED_BUT_USED); in WriteBlockInfoBlock()
945 RECORD(LATE_PARSED_TEMPLATE); in WriteBlockInfoBlock()
946 RECORD(OPTIMIZE_PRAGMA_OPTIONS); in WriteBlockInfoBlock()
947 RECORD(UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES); in WriteBlockInfoBlock()
948 RECORD(CXX_CTOR_INITIALIZERS_OFFSETS); in WriteBlockInfoBlock()
949 RECORD(DELETE_EXPRS_TO_ANALYZE); in WriteBlockInfoBlock()
953 RECORD(SM_SLOC_FILE_ENTRY); in WriteBlockInfoBlock()
954 RECORD(SM_SLOC_BUFFER_ENTRY); in WriteBlockInfoBlock()
955 RECORD(SM_SLOC_BUFFER_BLOB); in WriteBlockInfoBlock()
956 RECORD(SM_SLOC_EXPANSION_ENTRY); in WriteBlockInfoBlock()
960 RECORD(PP_MACRO_DIRECTIVE_HISTORY); in WriteBlockInfoBlock()
961 RECORD(PP_MACRO_FUNCTION_LIKE); in WriteBlockInfoBlock()
962 RECORD(PP_MACRO_OBJECT_LIKE); in WriteBlockInfoBlock()
963 RECORD(PP_MODULE_MACRO); in WriteBlockInfoBlock()
964 RECORD(PP_TOKEN); in WriteBlockInfoBlock()
968 RECORD(SUBMODULE_METADATA); in WriteBlockInfoBlock()
969 RECORD(SUBMODULE_DEFINITION); in WriteBlockInfoBlock()
970 RECORD(SUBMODULE_UMBRELLA_HEADER); in WriteBlockInfoBlock()
971 RECORD(SUBMODULE_HEADER); in WriteBlockInfoBlock()
972 RECORD(SUBMODULE_TOPHEADER); in WriteBlockInfoBlock()
973 RECORD(SUBMODULE_UMBRELLA_DIR); in WriteBlockInfoBlock()
974 RECORD(SUBMODULE_IMPORTS); in WriteBlockInfoBlock()
975 RECORD(SUBMODULE_EXPORTS); in WriteBlockInfoBlock()
976 RECORD(SUBMODULE_REQUIRES); in WriteBlockInfoBlock()
977 RECORD(SUBMODULE_EXCLUDED_HEADER); in WriteBlockInfoBlock()
978 RECORD(SUBMODULE_LINK_LIBRARY); in WriteBlockInfoBlock()
979 RECORD(SUBMODULE_CONFIG_MACRO); in WriteBlockInfoBlock()
980 RECORD(SUBMODULE_CONFLICT); in WriteBlockInfoBlock()
981 RECORD(SUBMODULE_PRIVATE_HEADER); in WriteBlockInfoBlock()
982 RECORD(SUBMODULE_TEXTUAL_HEADER); in WriteBlockInfoBlock()
983 RECORD(SUBMODULE_PRIVATE_TEXTUAL_HEADER); in WriteBlockInfoBlock()
987 RECORD(COMMENTS_RAW_COMMENT); in WriteBlockInfoBlock()
991 RECORD(TYPE_EXT_QUAL); in WriteBlockInfoBlock()
992 RECORD(TYPE_COMPLEX); in WriteBlockInfoBlock()
993 RECORD(TYPE_POINTER); in WriteBlockInfoBlock()
994 RECORD(TYPE_BLOCK_POINTER); in WriteBlockInfoBlock()
995 RECORD(TYPE_LVALUE_REFERENCE); in WriteBlockInfoBlock()
996 RECORD(TYPE_RVALUE_REFERENCE); in WriteBlockInfoBlock()
997 RECORD(TYPE_MEMBER_POINTER); in WriteBlockInfoBlock()
998 RECORD(TYPE_CONSTANT_ARRAY); in WriteBlockInfoBlock()
999 RECORD(TYPE_INCOMPLETE_ARRAY); in WriteBlockInfoBlock()
1000 RECORD(TYPE_VARIABLE_ARRAY); in WriteBlockInfoBlock()
1001 RECORD(TYPE_VECTOR); in WriteBlockInfoBlock()
1002 RECORD(TYPE_EXT_VECTOR); in WriteBlockInfoBlock()
1003 RECORD(TYPE_FUNCTION_NO_PROTO); in WriteBlockInfoBlock()
1004 RECORD(TYPE_FUNCTION_PROTO); in WriteBlockInfoBlock()
1005 RECORD(TYPE_TYPEDEF); in WriteBlockInfoBlock()
1006 RECORD(TYPE_TYPEOF_EXPR); in WriteBlockInfoBlock()
1007 RECORD(TYPE_TYPEOF); in WriteBlockInfoBlock()
1008 RECORD(TYPE_RECORD); in WriteBlockInfoBlock()
1009 RECORD(TYPE_ENUM); in WriteBlockInfoBlock()
1010 RECORD(TYPE_OBJC_INTERFACE); in WriteBlockInfoBlock()
1011 RECORD(TYPE_OBJC_OBJECT_POINTER); in WriteBlockInfoBlock()
1012 RECORD(TYPE_DECLTYPE); in WriteBlockInfoBlock()
1013 RECORD(TYPE_ELABORATED); in WriteBlockInfoBlock()
1014 RECORD(TYPE_SUBST_TEMPLATE_TYPE_PARM); in WriteBlockInfoBlock()
1015 RECORD(TYPE_UNRESOLVED_USING); in WriteBlockInfoBlock()
1016 RECORD(TYPE_INJECTED_CLASS_NAME); in WriteBlockInfoBlock()
1017 RECORD(TYPE_OBJC_OBJECT); in WriteBlockInfoBlock()
1018 RECORD(TYPE_TEMPLATE_TYPE_PARM); in WriteBlockInfoBlock()
1019 RECORD(TYPE_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1020 RECORD(TYPE_DEPENDENT_NAME); in WriteBlockInfoBlock()
1021 RECORD(TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1022 RECORD(TYPE_DEPENDENT_SIZED_ARRAY); in WriteBlockInfoBlock()
1023 RECORD(TYPE_PAREN); in WriteBlockInfoBlock()
1024 RECORD(TYPE_PACK_EXPANSION); in WriteBlockInfoBlock()
1025 RECORD(TYPE_ATTRIBUTED); in WriteBlockInfoBlock()
1026 RECORD(TYPE_SUBST_TEMPLATE_TYPE_PARM_PACK); in WriteBlockInfoBlock()
1027 RECORD(TYPE_AUTO); in WriteBlockInfoBlock()
1028 RECORD(TYPE_UNARY_TRANSFORM); in WriteBlockInfoBlock()
1029 RECORD(TYPE_ATOMIC); in WriteBlockInfoBlock()
1030 RECORD(TYPE_DECAYED); in WriteBlockInfoBlock()
1031 RECORD(TYPE_ADJUSTED); in WriteBlockInfoBlock()
1032 RECORD(LOCAL_REDECLARATIONS); in WriteBlockInfoBlock()
1033 RECORD(DECL_TYPEDEF); in WriteBlockInfoBlock()
1034 RECORD(DECL_TYPEALIAS); in WriteBlockInfoBlock()
1035 RECORD(DECL_ENUM); in WriteBlockInfoBlock()
1036 RECORD(DECL_RECORD); in WriteBlockInfoBlock()
1037 RECORD(DECL_ENUM_CONSTANT); in WriteBlockInfoBlock()
1038 RECORD(DECL_FUNCTION); in WriteBlockInfoBlock()
1039 RECORD(DECL_OBJC_METHOD); in WriteBlockInfoBlock()
1040 RECORD(DECL_OBJC_INTERFACE); in WriteBlockInfoBlock()
1041 RECORD(DECL_OBJC_PROTOCOL); in WriteBlockInfoBlock()
1042 RECORD(DECL_OBJC_IVAR); in WriteBlockInfoBlock()
1043 RECORD(DECL_OBJC_AT_DEFS_FIELD); in WriteBlockInfoBlock()
1044 RECORD(DECL_OBJC_CATEGORY); in WriteBlockInfoBlock()
1045 RECORD(DECL_OBJC_CATEGORY_IMPL); in WriteBlockInfoBlock()
1046 RECORD(DECL_OBJC_IMPLEMENTATION); in WriteBlockInfoBlock()
1047 RECORD(DECL_OBJC_COMPATIBLE_ALIAS); in WriteBlockInfoBlock()
1048 RECORD(DECL_OBJC_PROPERTY); in WriteBlockInfoBlock()
1049 RECORD(DECL_OBJC_PROPERTY_IMPL); in WriteBlockInfoBlock()
1050 RECORD(DECL_FIELD); in WriteBlockInfoBlock()
1051 RECORD(DECL_MS_PROPERTY); in WriteBlockInfoBlock()
1052 RECORD(DECL_VAR); in WriteBlockInfoBlock()
1053 RECORD(DECL_IMPLICIT_PARAM); in WriteBlockInfoBlock()
1054 RECORD(DECL_PARM_VAR); in WriteBlockInfoBlock()
1055 RECORD(DECL_FILE_SCOPE_ASM); in WriteBlockInfoBlock()
1056 RECORD(DECL_BLOCK); in WriteBlockInfoBlock()
1057 RECORD(DECL_CONTEXT_LEXICAL); in WriteBlockInfoBlock()
1058 RECORD(DECL_CONTEXT_VISIBLE); in WriteBlockInfoBlock()
1059 RECORD(DECL_NAMESPACE); in WriteBlockInfoBlock()
1060 RECORD(DECL_NAMESPACE_ALIAS); in WriteBlockInfoBlock()
1061 RECORD(DECL_USING); in WriteBlockInfoBlock()
1062 RECORD(DECL_USING_SHADOW); in WriteBlockInfoBlock()
1063 RECORD(DECL_USING_DIRECTIVE); in WriteBlockInfoBlock()
1064 RECORD(DECL_UNRESOLVED_USING_VALUE); in WriteBlockInfoBlock()
1065 RECORD(DECL_UNRESOLVED_USING_TYPENAME); in WriteBlockInfoBlock()
1066 RECORD(DECL_LINKAGE_SPEC); in WriteBlockInfoBlock()
1067 RECORD(DECL_CXX_RECORD); in WriteBlockInfoBlock()
1068 RECORD(DECL_CXX_METHOD); in WriteBlockInfoBlock()
1069 RECORD(DECL_CXX_CONSTRUCTOR); in WriteBlockInfoBlock()
1070 RECORD(DECL_CXX_DESTRUCTOR); in WriteBlockInfoBlock()
1071 RECORD(DECL_CXX_CONVERSION); in WriteBlockInfoBlock()
1072 RECORD(DECL_ACCESS_SPEC); in WriteBlockInfoBlock()
1073 RECORD(DECL_FRIEND); in WriteBlockInfoBlock()
1074 RECORD(DECL_FRIEND_TEMPLATE); in WriteBlockInfoBlock()
1075 RECORD(DECL_CLASS_TEMPLATE); in WriteBlockInfoBlock()
1076 RECORD(DECL_CLASS_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1077 RECORD(DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION); in WriteBlockInfoBlock()
1078 RECORD(DECL_VAR_TEMPLATE); in WriteBlockInfoBlock()
1079 RECORD(DECL_VAR_TEMPLATE_SPECIALIZATION); in WriteBlockInfoBlock()
1080 RECORD(DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION); in WriteBlockInfoBlock()
1081 RECORD(DECL_FUNCTION_TEMPLATE); in WriteBlockInfoBlock()
1082 RECORD(DECL_TEMPLATE_TYPE_PARM); in WriteBlockInfoBlock()
1083 RECORD(DECL_NON_TYPE_TEMPLATE_PARM); in WriteBlockInfoBlock()
1084 RECORD(DECL_TEMPLATE_TEMPLATE_PARM); in WriteBlockInfoBlock()
1085 RECORD(DECL_STATIC_ASSERT); in WriteBlockInfoBlock()
1086 RECORD(DECL_CXX_BASE_SPECIFIERS); in WriteBlockInfoBlock()
1087 RECORD(DECL_INDIRECTFIELD); in WriteBlockInfoBlock()
1088 RECORD(DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK); in WriteBlockInfoBlock()
1091 AddStmtsExprs(Stream, Record); in WriteBlockInfoBlock()
1094 RECORD(PPD_MACRO_EXPANSION); in WriteBlockInfoBlock()
1095 RECORD(PPD_MACRO_DEFINITION); in WriteBlockInfoBlock()
1096 RECORD(PPD_INCLUSION_DIRECTIVE); in WriteBlockInfoBlock()
1100 RECORD(EXTENSION_METADATA); in WriteBlockInfoBlock()
1102 #undef RECORD in WriteBlockInfoBlock()
1181 RecordData Record; in WriteControlBlock() local
1198 RecordData::value_type Record[] = {METADATA, VERSION_MAJOR, VERSION_MINOR, in WriteControlBlock() local
1202 Stream.EmitRecordWithBlob(MetadataAbbrevCode, Record, in WriteControlBlock()
1212 RecordData::value_type Record[] = {Signature}; in WriteControlBlock() local
1213 Stream.EmitRecord(SIGNATURE, Record); in WriteControlBlock()
1221 RecordData::value_type Record[] = {MODULE_NAME}; in WriteControlBlock() local
1222 Stream.EmitRecordWithBlob(AbbrevCode, Record, WritingModule->Name); in WriteControlBlock()
1242 RecordData::value_type Record[] = {MODULE_DIRECTORY}; in WriteControlBlock() local
1243 Stream.EmitRecordWithBlob(AbbrevCode, Record, BaseDir); in WriteControlBlock()
1255 Record.clear(); in WriteControlBlock()
1260 AddPath(Map.getModuleMapFileForUniquing(WritingModule)->getName(), Record); in WriteControlBlock()
1265 Record.push_back(AdditionalModMaps->size()); in WriteControlBlock()
1267 AddPath(F->getName(), Record); in WriteControlBlock()
1269 Record.push_back(0); in WriteControlBlock()
1272 Stream.EmitRecord(MODULE_MAP_FILE, Record); in WriteControlBlock()
1278 Record.clear(); in WriteControlBlock()
1285 Record.push_back((unsigned)M->Kind); // FIXME: Stable encoding in WriteControlBlock()
1286 AddSourceLocation(M->ImportLoc, Record); in WriteControlBlock()
1287 Record.push_back(M->File->getSize()); in WriteControlBlock()
1288 Record.push_back(getTimestampForOutput(M->File)); in WriteControlBlock()
1289 Record.push_back(M->Signature); in WriteControlBlock()
1290 AddPath(M->FileName, Record); in WriteControlBlock()
1292 Stream.EmitRecord(IMPORTS, Record); in WriteControlBlock()
1299 Record.clear(); in WriteControlBlock()
1302 Record.push_back(LangOpts.Name); in WriteControlBlock()
1304 Record.push_back(static_cast<unsigned>(LangOpts.get##Name())); in WriteControlBlock()
1307 Record.push_back(LangOpts.Sanitize.has(SanitizerKind::ID)); in WriteControlBlock()
1310 Record.push_back(LangOpts.ModuleFeatures.size()); in WriteControlBlock()
1312 AddString(Feature, Record); in WriteControlBlock()
1314 Record.push_back((unsigned) LangOpts.ObjCRuntime.getKind()); in WriteControlBlock()
1315 AddVersionTuple(LangOpts.ObjCRuntime.getVersion(), Record); in WriteControlBlock()
1317 AddString(LangOpts.CurrentModule, Record); in WriteControlBlock()
1320 Record.push_back(LangOpts.CommentOpts.BlockCommandNames.size()); in WriteControlBlock()
1322 AddString(I, Record); in WriteControlBlock()
1324 Record.push_back(LangOpts.CommentOpts.ParseAllComments); in WriteControlBlock()
1326 Stream.EmitRecord(LANGUAGE_OPTIONS, Record); in WriteControlBlock()
1329 Record.clear(); in WriteControlBlock()
1332 AddString(TargetOpts.Triple, Record); in WriteControlBlock()
1333 AddString(TargetOpts.CPU, Record); in WriteControlBlock()
1334 AddString(TargetOpts.ABI, Record); in WriteControlBlock()
1335 Record.push_back(TargetOpts.FeaturesAsWritten.size()); in WriteControlBlock()
1337 AddString(TargetOpts.FeaturesAsWritten[I], Record); in WriteControlBlock()
1339 Record.push_back(TargetOpts.Features.size()); in WriteControlBlock()
1341 AddString(TargetOpts.Features[I], Record); in WriteControlBlock()
1343 Stream.EmitRecord(TARGET_OPTIONS, Record); in WriteControlBlock()
1346 Record.clear(); in WriteControlBlock()
1349 #define DIAGOPT(Name, Bits, Default) Record.push_back(DiagOpts.Name); in WriteControlBlock()
1351 Record.push_back(static_cast<unsigned>(DiagOpts.get##Name())); in WriteControlBlock()
1353 Record.push_back(DiagOpts.Warnings.size()); in WriteControlBlock()
1355 AddString(DiagOpts.Warnings[I], Record); in WriteControlBlock()
1356 Record.push_back(DiagOpts.Remarks.size()); in WriteControlBlock()
1358 AddString(DiagOpts.Remarks[I], Record); in WriteControlBlock()
1361 Stream.EmitRecord(DIAGNOSTIC_OPTIONS, Record); in WriteControlBlock()
1364 Record.clear(); in WriteControlBlock()
1367 AddString(FSOpts.WorkingDir, Record); in WriteControlBlock()
1368 Stream.EmitRecord(FILE_SYSTEM_OPTIONS, Record); in WriteControlBlock()
1371 Record.clear(); in WriteControlBlock()
1374 AddString(HSOpts.Sysroot, Record); in WriteControlBlock()
1377 Record.push_back(HSOpts.UserEntries.size()); in WriteControlBlock()
1380 AddString(Entry.Path, Record); in WriteControlBlock()
1381 Record.push_back(static_cast<unsigned>(Entry.Group)); in WriteControlBlock()
1382 Record.push_back(Entry.IsFramework); in WriteControlBlock()
1383 Record.push_back(Entry.IgnoreSysRoot); in WriteControlBlock()
1387 Record.push_back(HSOpts.SystemHeaderPrefixes.size()); in WriteControlBlock()
1389 AddString(HSOpts.SystemHeaderPrefixes[I].Prefix, Record); in WriteControlBlock()
1390 Record.push_back(HSOpts.SystemHeaderPrefixes[I].IsSystemHeader); in WriteControlBlock()
1393 AddString(HSOpts.ResourceDir, Record); in WriteControlBlock()
1394 AddString(HSOpts.ModuleCachePath, Record); in WriteControlBlock()
1395 AddString(HSOpts.ModuleUserBuildPath, Record); in WriteControlBlock()
1396 Record.push_back(HSOpts.DisableModuleHash); in WriteControlBlock()
1397 Record.push_back(HSOpts.UseBuiltinIncludes); in WriteControlBlock()
1398 Record.push_back(HSOpts.UseStandardSystemIncludes); in WriteControlBlock()
1399 Record.push_back(HSOpts.UseStandardCXXIncludes); in WriteControlBlock()
1400 Record.push_back(HSOpts.UseLibcxx); in WriteControlBlock()
1402 AddString(PP.getHeaderSearchInfo().getModuleCachePath(), Record); in WriteControlBlock()
1403 Stream.EmitRecord(HEADER_SEARCH_OPTIONS, Record); in WriteControlBlock()
1406 Record.clear(); in WriteControlBlock()
1410 Record.push_back(PPOpts.Macros.size()); in WriteControlBlock()
1412 AddString(PPOpts.Macros[I].first, Record); in WriteControlBlock()
1413 Record.push_back(PPOpts.Macros[I].second); in WriteControlBlock()
1417 Record.push_back(PPOpts.Includes.size()); in WriteControlBlock()
1419 AddString(PPOpts.Includes[I], Record); in WriteControlBlock()
1422 Record.push_back(PPOpts.MacroIncludes.size()); in WriteControlBlock()
1424 AddString(PPOpts.MacroIncludes[I], Record); in WriteControlBlock()
1426 Record.push_back(PPOpts.UsePredefines); in WriteControlBlock()
1427 // Detailed record is important since it is used for the module cache hash. in WriteControlBlock()
1428 Record.push_back(PPOpts.DetailedRecord); in WriteControlBlock()
1429 AddString(PPOpts.ImplicitPCHInclude, Record); in WriteControlBlock()
1430 AddString(PPOpts.ImplicitPTHInclude, Record); in WriteControlBlock()
1431 Record.push_back(static_cast<unsigned>(PPOpts.ObjCXXARCStandardLibrary)); in WriteControlBlock()
1432 Stream.EmitRecord(PREPROCESSOR_OPTIONS, Record); in WriteControlBlock()
1446 Record.clear(); in WriteControlBlock()
1447 Record.push_back(ORIGINAL_FILE); in WriteControlBlock()
1448 Record.push_back(SM.getMainFileID().getOpaqueValue()); in WriteControlBlock()
1449 EmitRecordWithPath(FileAbbrevCode, Record, MainFile->getName()); in WriteControlBlock()
1452 Record.clear(); in WriteControlBlock()
1453 Record.push_back(SM.getMainFileID().getOpaqueValue()); in WriteControlBlock()
1454 Stream.EmitRecord(ORIGINAL_FILE_ID, Record); in WriteControlBlock()
1468 RecordData::value_type Record[] = {ORIGINAL_PCH_DIR}; in WriteControlBlock() local
1469 Stream.EmitRecordWithBlob(AbbrevCode, Record, origDir); in WriteControlBlock()
1540 // Record this entry's offset. in WriteInputFiles()
1550 RecordData::value_type Record[] = { in WriteInputFiles() local
1558 EmitRecordWithPath(IFAbbrevCode, Record, Entry.File->getName()); in WriteInputFiles()
1573 RecordData::value_type Record[] = {INPUT_FILE_OFFSETS, in WriteInputFiles() local
1575 Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, bytes(InputFileOffsets)); in WriteInputFiles()
1735 // record of that fact. in EmitData()
1821 RecordData::value_type Record[] = {HEADER_SEARCH_TABLE, BucketOffset, in WriteHeaderSearch() local
1824 Stream.EmitRecordWithBlob(TableAbbrev, Record, TableData); in WriteHeaderSearch()
1841 RecordData Record; in WriteSourceManagerBlock() local
1864 // Record the offset of this source-location entry. in WriteSourceManagerBlock()
1867 // Figure out which record code to use. in WriteSourceManagerBlock()
1877 Record.clear(); in WriteSourceManagerBlock()
1878 Record.push_back(Code); in WriteSourceManagerBlock()
1881 Record.push_back(SLoc->getOffset() - 2); in WriteSourceManagerBlock()
1884 Record.push_back(File.getIncludeLoc().getRawEncoding()); in WriteSourceManagerBlock()
1885 Record.push_back(File.getFileCharacteristic()); // FIXME: stable encoding in WriteSourceManagerBlock()
1886 Record.push_back(File.hasLineDirectives()); in WriteSourceManagerBlock()
1895 Record.push_back(InputFileIDs[Content->OrigEntry]); in WriteSourceManagerBlock()
1897 Record.push_back(File.NumCreatedFIDs); in WriteSourceManagerBlock()
1901 Record.push_back(FDI->second->FirstDeclIndex); in WriteSourceManagerBlock()
1902 Record.push_back(FDI->second->DeclIDs.size()); in WriteSourceManagerBlock()
1904 Record.push_back(0); in WriteSourceManagerBlock()
1905 Record.push_back(0); in WriteSourceManagerBlock()
1908 Stream.EmitRecordWithAbbrev(SLocFileAbbrv, Record); in WriteSourceManagerBlock()
1911 RecordData::value_type Record[] = {SM_SLOC_BUFFER_BLOB}; in WriteSourceManagerBlock() local
1914 Stream.EmitRecordWithBlob(SLocBufferBlobAbbrv, Record, in WriteSourceManagerBlock()
1928 Stream.EmitRecordWithBlob(SLocBufferAbbrv, Record, in WriteSourceManagerBlock()
1930 RecordData::value_type Record[] = {SM_SLOC_BUFFER_BLOB}; in WriteSourceManagerBlock() local
1931 Stream.EmitRecordWithBlob(SLocBufferBlobAbbrv, Record, in WriteSourceManagerBlock()
1942 Record.push_back(Expansion.getSpellingLoc().getRawEncoding()); in WriteSourceManagerBlock()
1943 Record.push_back(Expansion.getExpansionLocStart().getRawEncoding()); in WriteSourceManagerBlock()
1944 Record.push_back(Expansion.isMacroArgExpansion() ? 0 in WriteSourceManagerBlock()
1951 Record.push_back(NextOffset - SLoc->getOffset() - 1); in WriteSourceManagerBlock()
1952 Stream.EmitRecordWithAbbrev(SLocExpansionAbbrv, Record); in WriteSourceManagerBlock()
1972 RecordData::value_type Record[] = { in WriteSourceManagerBlock() local
1975 Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record, in WriteSourceManagerBlock()
1987 Record.clear(); in WriteSourceManagerBlock()
1997 AddPath(LineTable.getFilename(LE.FilenameID), Record); in WriteSourceManagerBlock()
2000 Record.push_back(0); in WriteSourceManagerBlock()
2009 Record.push_back(L.first.ID); in WriteSourceManagerBlock()
2012 Record.push_back(L.second.size()); in WriteSourceManagerBlock()
2014 Record.push_back(LE.FileOffset); in WriteSourceManagerBlock()
2015 Record.push_back(LE.LineNo); in WriteSourceManagerBlock()
2016 Record.push_back(FilenameMap[LE.FilenameID]); in WriteSourceManagerBlock()
2017 Record.push_back((unsigned)LE.FileKind); in WriteSourceManagerBlock()
2018 Record.push_back(LE.IncludeOffset); in WriteSourceManagerBlock()
2022 Stream.EmitRecord(SOURCE_MANAGER_LINE_TABLE, Record); in WriteSourceManagerBlock()
2055 RecordData Record; in WritePreprocessor() local
2060 RecordData::value_type Record[] = {PP.getCounterValue()}; in WritePreprocessor() local
2061 Stream.EmitRecord(PP_COUNTER_VALUE, Record); in WritePreprocessor()
2101 AddSourceLocation(MD->getLocation(), Record); in WritePreprocessor()
2102 Record.push_back(MD->getKind()); in WritePreprocessor()
2104 Record.push_back(getMacroRef(DefMD->getInfo(), Name)); in WritePreprocessor()
2106 Record.push_back(VisMD->isPublic()); in WritePreprocessor()
2119 // Emit a record indicating this submodule exports this macro. in WritePreprocessor()
2138 if (Record.empty() && !EmittedModuleMacros) in WritePreprocessor()
2142 Stream.EmitRecord(PP_MACRO_DIRECTIVE_HISTORY, Record); in WritePreprocessor()
2143 Record.clear(); in WritePreprocessor()
2164 // Record the local offset of this macro. in WritePreprocessor()
2175 AddIdentifierRef(Name, Record); in WritePreprocessor()
2176 Record.push_back(inferSubmoduleIDFromLocation(MI->getDefinitionLoc())); in WritePreprocessor()
2177 AddSourceLocation(MI->getDefinitionLoc(), Record); in WritePreprocessor()
2178 AddSourceLocation(MI->getDefinitionEndLoc(), Record); in WritePreprocessor()
2179 Record.push_back(MI->isUsed()); in WritePreprocessor()
2180 Record.push_back(MI->isUsedForHeaderGuard()); in WritePreprocessor()
2187 Record.push_back(MI->isC99Varargs()); in WritePreprocessor()
2188 Record.push_back(MI->isGNUVarargs()); in WritePreprocessor()
2189 Record.push_back(MI->hasCommaPasting()); in WritePreprocessor()
2190 Record.push_back(MI->getNumArgs()); in WritePreprocessor()
2192 AddIdentifierRef(Arg, Record); in WritePreprocessor()
2195 // If we have a detailed preprocessing record, record the macro definition in WritePreprocessor()
2198 Record.push_back(MacroDefinitions[PPRec->findMacroDefinition(MI)]); in WritePreprocessor()
2200 Stream.EmitRecord(Code, Record); in WritePreprocessor()
2201 Record.clear(); in WritePreprocessor()
2209 AddToken(Tok, Record); in WritePreprocessor()
2210 Stream.EmitRecord(PP_TOKEN, Record); in WritePreprocessor()
2211 Record.clear(); in WritePreprocessor()
2229 RecordData::value_type Record[] = {MACRO_OFFSET, MacroOffsets.size(), in WritePreprocessor() local
2231 Stream.EmitRecordWithBlob(MacroOffsetAbbrev, Record, bytes(MacroOffsets)); in WritePreprocessor()
2244 // If the preprocessor has a preprocessing record, emit it. in WritePreprocessorDetail()
2265 RecordData Record; in WritePreprocessorDetail() local
2270 Record.clear(); in WritePreprocessorDetail()
2276 // Record this macro definition's ID. in WritePreprocessorDetail()
2279 AddIdentifierRef(MD->getName(), Record); in WritePreprocessorDetail()
2280 Stream.EmitRecord(PPD_MACRO_DEFINITION, Record); in WritePreprocessorDetail()
2285 Record.push_back(ME->isBuiltinMacro()); in WritePreprocessorDetail()
2287 AddIdentifierRef(ME->getName(), Record); in WritePreprocessorDetail()
2289 Record.push_back(MacroDefinitions[ME->getDefinition()]); in WritePreprocessorDetail()
2290 Stream.EmitRecord(PPD_MACRO_EXPANSION, Record); in WritePreprocessorDetail()
2295 Record.push_back(PPD_INCLUSION_DIRECTIVE); in WritePreprocessorDetail()
2296 Record.push_back(ID->getFileName().size()); in WritePreprocessorDetail()
2297 Record.push_back(ID->wasInQuotes()); in WritePreprocessorDetail()
2298 Record.push_back(static_cast<unsigned>(ID->getKind())); in WritePreprocessorDetail()
2299 Record.push_back(ID->importedModule()); in WritePreprocessorDetail()
2306 Stream.EmitRecordWithBlob(InclusionAbbrev, Record, Buffer); in WritePreprocessorDetail()
2314 // Write the offsets table for the preprocessing record. in WritePreprocessorDetail()
2327 RecordData::value_type Record[] = {PPD_ENTITIES_OFFSETS, in WritePreprocessorDetail() local
2330 Stream.EmitRecordWithBlob(PPEOffsetAbbrev, Record, in WritePreprocessorDetail()
2456 RecordData::value_type Record[] = {getNumberOfModules(WritingModule), in WriteSubmodules() local
2459 Stream.EmitRecord(SUBMODULE_METADATA, Record); in WriteSubmodules()
2477 RecordData::value_type Record[] = { in WriteSubmodules() local
2482 Stream.EmitRecordWithBlob(DefinitionAbbrev, Record, Mod->Name); in WriteSubmodules()
2487 RecordData::value_type Record[] = {SUBMODULE_REQUIRES, R.second}; in WriteSubmodules() local
2488 Stream.EmitRecordWithBlob(RequiresAbbrev, Record, R.first); in WriteSubmodules()
2493 RecordData::value_type Record[] = {SUBMODULE_UMBRELLA_HEADER}; in WriteSubmodules() local
2494 Stream.EmitRecordWithBlob(UmbrellaAbbrev, Record, in WriteSubmodules()
2497 RecordData::value_type Record[] = {SUBMODULE_UMBRELLA_DIR}; in WriteSubmodules() local
2498 Stream.EmitRecordWithBlob(UmbrellaDirAbbrev, Record, in WriteSubmodules()
2516 RecordData::value_type Record[] = {HL.RecordKind}; in WriteSubmodules() local
2518 Stream.EmitRecordWithBlob(HL.Abbrev, Record, H.NameAsWritten); in WriteSubmodules()
2524 RecordData::value_type Record[] = {SUBMODULE_TOPHEADER}; in WriteSubmodules() local
2526 Stream.EmitRecordWithBlob(TopHeaderAbbrev, Record, H->getName()); in WriteSubmodules()
2531 RecordData Record; in WriteSubmodules() local
2533 Record.push_back(getSubmoduleID(I)); in WriteSubmodules()
2534 Stream.EmitRecord(SUBMODULE_IMPORTS, Record); in WriteSubmodules()
2539 RecordData Record; in WriteSubmodules() local
2543 Record.push_back(getSubmoduleID(E.getPointer())); in WriteSubmodules()
2544 Record.push_back(E.getInt()); in WriteSubmodules()
2546 Stream.EmitRecord(SUBMODULE_EXPORTS, Record); in WriteSubmodules()
2555 RecordData::value_type Record[] = {SUBMODULE_LINK_LIBRARY, in WriteSubmodules() local
2557 Stream.EmitRecordWithBlob(LinkLibraryAbbrev, Record, LL.Library); in WriteSubmodules()
2564 RecordData::value_type Record[] = {SUBMODULE_CONFLICT, in WriteSubmodules() local
2566 Stream.EmitRecordWithBlob(ConflictAbbrev, Record, C.Message); in WriteSubmodules()
2571 RecordData::value_type Record[] = {SUBMODULE_CONFIG_MACRO}; in WriteSubmodules() local
2572 Stream.EmitRecordWithBlob(ConfigMacroAbbrev, Record, CM); in WriteSubmodules()
2619 RecordData Record; in WritePragmaDiagnosticMappings() local
2627 Record.push_back(point.Loc.getRawEncoding()); in WritePragmaDiagnosticMappings()
2629 Record.push_back(DiagStateID); in WritePragmaDiagnosticMappings()
2635 Record.push_back(I.first); in WritePragmaDiagnosticMappings()
2636 Record.push_back((unsigned)I.second.getSeverity()); in WritePragmaDiagnosticMappings()
2639 Record.push_back(-1); // mark the end of the diag/map pairs for this in WritePragmaDiagnosticMappings()
2644 if (!Record.empty()) in WritePragmaDiagnosticMappings()
2645 Stream.EmitRecord(DIAG_PRAGMA_MAPPINGS, Record); in WritePragmaDiagnosticMappings()
2662 RecordData::value_type Record[] = {CXX_CTOR_INITIALIZERS_OFFSETS, in WriteCXXCtorInitializersOffsets() local
2664 Stream.EmitRecordWithBlob(CtorInitializersOffsetAbbrev, Record, in WriteCXXCtorInitializersOffsets()
2682 RecordData::value_type Record[] = {CXX_BASE_SPECIFIER_OFFSETS, in WriteCXXBaseSpecifiersOffsets() local
2684 Stream.EmitRecordWithBlob(BaseSpecifierOffsetAbbrev, Record, in WriteCXXBaseSpecifiersOffsets()
2700 // Record the offset for this type. in WriteType()
2709 RecordData Record; in WriteType() local
2712 ASTTypeWriter W(*this, Record); in WriteType()
2717 AddTypeRef(T.getLocalUnqualifiedType(), Record); in WriteType()
2718 Record.push_back(Qs.getAsOpaqueValue()); in WriteType()
2732 // Emit the serialized record. in WriteType()
2733 Stream.EmitRecord(W.Code, Record, W.AbbrevToUse); in WriteType()
2761 RecordData::value_type Record[] = {DECL_CONTEXT_LEXICAL}; in WriteDeclContextLexicalBlock() local
2762 Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record, in WriteDeclContextLexicalBlock()
2778 RecordData::value_type Record[] = {TYPE_OFFSET, TypeOffsets.size(), in WriteTypeDeclOffsets() local
2780 Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, bytes(TypeOffsets)); in WriteTypeDeclOffsets()
2791 RecordData::value_type Record[] = {DECL_OFFSET, DeclOffsets.size(), in WriteTypeDeclOffsets() local
2793 Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, bytes(DeclOffsets)); in WriteTypeDeclOffsets()
2819 RecordData::value_type Record[] = {FILE_SORTED_DECLS, in WriteFileDeclIDsMap() local
2821 Stream.EmitRecordWithBlob(AbbrevCode, Record, bytes(FileGroupedDeclIDs)); in WriteFileDeclIDsMap()
2827 RecordData Record; in WriteComments() local
2829 Record.clear(); in WriteComments()
2830 AddSourceRange(I->getSourceRange(), Record); in WriteComments()
2831 Record.push_back(I->getKind()); in WriteComments()
2832 Record.push_back(I->isTrailingComment()); in WriteComments()
2833 Record.push_back(I->isAlmostTrailingComment()); in WriteComments()
2834 Stream.EmitRecord(COMMENTS_RAW_COMMENT, Record); in WriteComments()
3029 RecordData::value_type Record[] = {METHOD_POOL, BucketOffset, in WriteSelectors() local
3031 Stream.EmitRecordWithBlob(MethodPoolAbbrev, Record, MethodPool); in WriteSelectors()
3044 RecordData::value_type Record[] = { in WriteSelectors() local
3047 Stream.EmitRecordWithBlob(SelectorOffsetAbbrev, Record, in WriteSelectors()
3059 RecordData Record; in WriteReferencedSelectorsPool() local
3067 AddSelectorRef(Sel, Record); in WriteReferencedSelectorsPool()
3068 AddSourceLocation(Loc, Record); in WriteReferencedSelectorsPool()
3070 Stream.EmitRecord(REFERENCED_SELECTOR_POOL, Record); in WriteReferencedSelectorsPool()
3193 // Record the location of the key data. This is used when generating in EmitKey()
3317 RecordData::value_type Record[] = {IDENTIFIER_TABLE, BucketOffset}; in WriteIdentifierTable() local
3318 Stream.EmitRecordWithBlob(IDTableAbbrev, Record, IdentifierTable); in WriteIdentifierTable()
3334 RecordData::value_type Record[] = {IDENTIFIER_OFFSET, in WriteIdentifierTable() local
3337 Stream.EmitRecordWithBlob(IdentifierOffsetAbbrev, Record, in WriteIdentifierTable()
3677 // lookup results as an update record for it rather than including them in WriteDeclContextVisibleBlock()
3687 // Note that we need to emit an update record for the primary context. in WriteDeclContextVisibleBlock()
3752 RecordData::value_type Record[] = {DECL_CONTEXT_VISIBLE}; in WriteDeclContextVisibleBlock() local
3753 Stream.EmitRecordWithBlob(DeclContextVisibleLookupAbbrev, Record, in WriteDeclContextVisibleBlock()
3775 // update record; those are the only ones that will be checked on reload. in WriteDeclContextVisibleUpdate()
3780 RecordData::value_type Record[] = {UPDATE_VISIBLE, getDeclID(cast<Decl>(DC))}; in WriteDeclContextVisibleUpdate() local
3781 Stream.EmitRecordWithBlob(UpdateVisibleAbbrev, Record, LookupTable); in WriteDeclContextVisibleUpdate()
3786 RecordData::value_type Record[] = {Opts.fp_contract}; in WriteFPPragmaOptions() local
3787 Stream.EmitRecord(FP_PRAGMA_OPTIONS, Record); in WriteFPPragmaOptions()
3796 RecordData Record; in WriteOpenCLExtensions() local
3797 #define OPENCLEXT(nm) Record.push_back(Opts.nm); in WriteOpenCLExtensions()
3799 Stream.EmitRecord(OPENCL_EXTENSIONS, Record); in WriteOpenCLExtensions()
3827 // Record this interface -> category map. in WriteObjCCategories()
3845 RecordData::value_type Record[] = {OBJC_CATEGORIES_MAP, CategoriesMap.size()}; in WriteObjCCategories() local
3846 Stream.EmitRecordWithBlob(AbbrevID, Record, in WriteObjCCategories()
3860 RecordData Record; in WriteLateParsedTemplates() local
3864 AddDeclRef(FD, Record); in WriteLateParsedTemplates()
3865 AddDeclRef(LPT->D, Record); in WriteLateParsedTemplates()
3866 Record.push_back(LPT->Toks.size()); in WriteLateParsedTemplates()
3869 AddToken(Tok, Record); in WriteLateParsedTemplates()
3872 Stream.EmitRecord(LATE_PARSED_TEMPLATE, Record); in WriteLateParsedTemplates()
3877 RecordData Record; in WriteOptimizePragmaOptions() local
3879 AddSourceLocation(PragmaLoc, Record); in WriteOptimizePragmaOptions()
3880 Stream.EmitRecord(OPTIMIZE_PRAGMA_OPTIONS, Record); in WriteOptimizePragmaOptions()
3888 // Emit the metadata record abbreviation. in WriteModuleFileExtension()
3898 // Emit the metadata record. in WriteModuleFileExtension()
3899 RecordData Record; in WriteModuleFileExtension() local
3901 Record.push_back(EXTENSION_METADATA); in WriteModuleFileExtension()
3902 Record.push_back(Metadata.MajorVersion); in WriteModuleFileExtension()
3903 Record.push_back(Metadata.MinorVersion); in WriteModuleFileExtension()
3904 Record.push_back(Metadata.BlockName.size()); in WriteModuleFileExtension()
3905 Record.push_back(Metadata.UserInfo.size()); in WriteModuleFileExtension()
3909 Stream.EmitRecordWithBlob(Abbrev, Record, Buffer); in WriteModuleFileExtension()
3922 /// \brief Write a record containing the given attributes.
3924 RecordDataImpl &Record) { in WriteAttributes() argument
3925 Record.push_back(Attrs.size()); in WriteAttributes()
3927 Record.push_back(A->getKind()); // FIXME: stable encoding, target attrs in WriteAttributes()
3928 AddSourceRange(A->getRange(), Record); in WriteAttributes()
3935 void ASTWriter::AddToken(const Token &Tok, RecordDataImpl &Record) { in AddToken() argument
3936 AddSourceLocation(Tok.getLocation(), Record); in AddToken()
3937 Record.push_back(Tok.getLength()); in AddToken()
3941 AddIdentifierRef(Tok.getIdentifierInfo(), Record); in AddToken()
3943 Record.push_back(Tok.getKind()); in AddToken()
3945 Record.push_back(Tok.getFlags()); in AddToken()
3948 void ASTWriter::AddString(StringRef Str, RecordDataImpl &Record) { in AddString() argument
3949 Record.push_back(Str.size()); in AddString()
3950 Record.insert(Record.end(), Str.begin(), Str.end()); in AddString()
3971 void ASTWriter::AddPath(StringRef Path, RecordDataImpl &Record) { in AddPath() argument
3974 AddString(FilePath, Record); in AddPath()
3977 void ASTWriter::EmitRecordWithPath(unsigned Abbrev, RecordDataRef Record, in EmitRecordWithPath() argument
3981 Stream.EmitRecordWithBlob(Abbrev, Record, FilePath); in EmitRecordWithPath()
3985 RecordDataImpl &Record) { in AddVersionTuple() argument
3986 Record.push_back(Version.getMajor()); in AddVersionTuple()
3988 Record.push_back(*Minor + 1); in AddVersionTuple()
3990 Record.push_back(0); in AddVersionTuple()
3992 Record.push_back(*Subminor + 1); in AddVersionTuple()
3994 Record.push_back(0); in AddVersionTuple()
4012 // Don't record offsets for selectors that are also available in a different in SetSelectorOffset()
4093 ASTWriter::RecordData &Record) { in AddLazyVectorDecls() argument
4096 Writer.AddDeclRef(*I, Record); in AddLazyVectorDecls()
4140 // Build a record containing all of the tentative definitions in this file, in in WriteASTCore()
4141 // TentativeDefinitions order. Generally, this record will be empty for in WriteASTCore()
4146 // Build a record containing all of the file scoped decls in this file. in WriteASTCore()
4152 // Build a record containing all of the delegating constructors we still need in WriteASTCore()
4171 // Build a record containing all of the ext_vector declarations. in WriteASTCore()
4175 // Build a record containing all of the VTable uses information. in WriteASTCore()
4185 // Build a record containing all of the UnusedLocalTypedefNameCandidates. in WriteASTCore()
4190 // Build a record containing all of pending implicit instantiations. in WriteASTCore()
4199 // Build a record containing some declaration references. in WriteASTCore()
4211 // Build a record containing all of the known namespaces. in WriteASTCore()
4218 // Build a record of all used, undefined objects that require definitions. in WriteASTCore()
4228 // Build a record containing all delete-expressions that we would like to in WriteASTCore()
4251 RecordData Record = {VERSION_MAJOR}; in WriteASTCore() local
4252 Stream.EmitRecord(METADATA_OLD_FORMAT, Record); in WriteASTCore()
4271 RecordData::value_type Record[] = {TU_UPDATE_LEXICAL}; in WriteASTCore() local
4272 Stream.EmitRecordWithBlob(TuUpdateLexicalAbbrev, Record, in WriteASTCore()
4292 ASTWriter::UpdateRecord &Record = DeclUpdates[TU]; in WriteASTCore() local
4293 if (Record.empty()) in WriteASTCore()
4294 Record.push_back(DeclUpdate(UPD_CXX_ADDED_ANONYMOUS_NAMESPACE, NS)); in WriteASTCore()
4335 // Form the record of special types. in WriteASTCore()
4401 RecordData::value_type Record[] = {MODULE_OFFSET_MAP}; in WriteASTCore() local
4402 Stream.EmitRecordWithBlob(ModuleOffsetMapAbbrev, Record, in WriteASTCore()
4453 // Write the record containing external, unnamed definitions. in WriteASTCore()
4457 // Write the record containing tentative definitions. in WriteASTCore()
4461 // Write the record containing unused file scoped decls. in WriteASTCore()
4465 // Write the record containing weak undeclared identifiers. in WriteASTCore()
4470 // Write the record containing ext_vector type names. in WriteASTCore()
4474 // Write the record containing VTable uses information. in WriteASTCore()
4478 // Write the record containing potentially unused local typedefs. in WriteASTCore()
4483 // Write the record containing pending implicit instantiations. in WriteASTCore()
4487 // Write the record containing declaration references of Sema. in WriteASTCore()
4491 // Write the record containing CUDA-specific declaration references. in WriteASTCore()
4560 RecordData::value_type Record[] = { in WriteASTCore() local
4562 Stream.EmitRecord(STATISTICS, Record); in WriteASTCore()
4583 RecordData Record; in WriteDeclUpdatesBlocks() local
4587 Record.push_back(Kind); in WriteDeclUpdatesBlocks()
4593 Record.push_back(GetDeclRef(Update.getDecl())); in WriteDeclUpdatesBlocks()
4599 Record.pop_back(); in WriteDeclUpdatesBlocks()
4604 AddSourceLocation(Update.getLoc(), Record); in WriteDeclUpdatesBlocks()
4610 AddCXXDefinitionData(RD, Record); in WriteDeclUpdatesBlocks()
4611 Record.push_back(WriteDeclContextLexicalBlock( in WriteDeclUpdatesBlocks()
4618 Record.push_back(MSInfo->getTemplateSpecializationKind()); in WriteDeclUpdatesBlocks()
4619 AddSourceLocation(MSInfo->getPointOfInstantiation(), Record); in WriteDeclUpdatesBlocks()
4622 Record.push_back(Spec->getTemplateSpecializationKind()); in WriteDeclUpdatesBlocks()
4623 AddSourceLocation(Spec->getPointOfInstantiation(), Record); in WriteDeclUpdatesBlocks()
4626 // specialization. If so, record which one. in WriteDeclUpdatesBlocks()
4630 Record.push_back(true); in WriteDeclUpdatesBlocks()
4631 AddDeclRef(PartialSpec, Record); in WriteDeclUpdatesBlocks()
4633 Record); in WriteDeclUpdatesBlocks()
4635 Record.push_back(false); in WriteDeclUpdatesBlocks()
4638 Record.push_back(RD->getTagKind()); in WriteDeclUpdatesBlocks()
4639 AddSourceLocation(RD->getLocation(), Record); in WriteDeclUpdatesBlocks()
4640 AddSourceLocation(RD->getLocStart(), Record); in WriteDeclUpdatesBlocks()
4641 AddSourceLocation(RD->getRBraceLoc(), Record); in WriteDeclUpdatesBlocks()
4644 Record.push_back(D->hasAttrs()); in WriteDeclUpdatesBlocks()
4645 if (Record.back()) in WriteDeclUpdatesBlocks()
4647 D->getAttrs().size()), Record); in WriteDeclUpdatesBlocks()
4654 AddDeclRef(Update.getDecl(), Record); in WriteDeclUpdatesBlocks()
4661 Record); in WriteDeclUpdatesBlocks()
4665 Record.push_back(GetOrCreateTypeID(Update.getType())); in WriteDeclUpdatesBlocks()
4673 Record.push_back(Update.getNumber()); in WriteDeclUpdatesBlocks()
4678 Record); in WriteDeclUpdatesBlocks()
4682 Record.push_back(getSubmoduleID(Update.getModule())); in WriteDeclUpdatesBlocks()
4686 WriteAttributes(llvm::makeArrayRef(Update.getAttr()), Record); in WriteDeclUpdatesBlocks()
4693 Record.push_back(UPD_CXX_ADDED_FUNCTION_DEFINITION); in WriteDeclUpdatesBlocks()
4694 Record.push_back(Def->isInlined()); in WriteDeclUpdatesBlocks()
4695 AddSourceLocation(Def->getInnerLocStart(), Record); in WriteDeclUpdatesBlocks()
4696 AddFunctionDefinition(Def, Record); in WriteDeclUpdatesBlocks()
4702 Stream.EmitRecord(DECL_UPDATES, Record); in WriteDeclUpdatesBlocks()
4712 RecordData Record; in WriteDeclReplacementsBlock() local
4714 Record.push_back(I.ID); in WriteDeclReplacementsBlock()
4715 Record.push_back(I.Offset); in WriteDeclReplacementsBlock()
4716 Record.push_back(I.Loc); in WriteDeclReplacementsBlock()
4718 Stream.EmitRecord(DECL_REPLACEMENTS, Record); in WriteDeclReplacementsBlock()
4721 void ASTWriter::AddSourceLocation(SourceLocation Loc, RecordDataImpl &Record) { in AddSourceLocation() argument
4722 Record.push_back(Loc.getRawEncoding()); in AddSourceLocation()
4725 void ASTWriter::AddSourceRange(SourceRange Range, RecordDataImpl &Record) { in AddSourceRange() argument
4726 AddSourceLocation(Range.getBegin(), Record); in AddSourceRange()
4727 AddSourceLocation(Range.getEnd(), Record); in AddSourceRange()
4730 void ASTWriter::AddAPInt(const llvm::APInt &Value, RecordDataImpl &Record) { in AddAPInt() argument
4731 Record.push_back(Value.getBitWidth()); in AddAPInt()
4733 Record.append(Words, Words + Value.getNumWords()); in AddAPInt()
4736 void ASTWriter::AddAPSInt(const llvm::APSInt &Value, RecordDataImpl &Record) { in AddAPSInt() argument
4737 Record.push_back(Value.isUnsigned()); in AddAPSInt()
4738 AddAPInt(Value, Record); in AddAPSInt()
4741 void ASTWriter::AddAPFloat(const llvm::APFloat &Value, RecordDataImpl &Record) { in AddAPFloat() argument
4742 AddAPInt(Value.bitcastToAPInt(), Record); in AddAPFloat()
4745 void ASTWriter::AddIdentifierRef(const IdentifierInfo *II, RecordDataImpl &Record) { in AddIdentifierRef() argument
4746 Record.push_back(getIdentifierRef(II)); in AddIdentifierRef()
4787 void ASTWriter::AddSelectorRef(const Selector SelRef, RecordDataImpl &Record) { in AddSelectorRef() argument
4788 Record.push_back(getSelectorRef(SelRef)); in AddSelectorRef()
4810 void ASTWriter::AddCXXTemporary(const CXXTemporary *Temp, RecordDataImpl &Record) { in AddCXXTemporary() argument
4811 AddDeclRef(Temp->getDestructor(), Record); in AddCXXTemporary()
4815 RecordDataImpl &Record) { in AddCXXCtorInitializersRef() argument
4819 Record.push_back(NextCXXCtorInitializersID++); in AddCXXCtorInitializersRef()
4824 RecordDataImpl &Record) { in AddCXXBaseSpecifiersRef() argument
4829 Record.push_back(NextCXXBaseSpecifiersID++); in AddCXXBaseSpecifiersRef()
4834 RecordDataImpl &Record) { in AddTemplateArgumentLocInfo() argument
4840 AddTypeSourceInfo(Arg.getAsTypeSourceInfo(), Record); in AddTemplateArgumentLocInfo()
4843 AddNestedNameSpecifierLoc(Arg.getTemplateQualifierLoc(), Record); in AddTemplateArgumentLocInfo()
4844 AddSourceLocation(Arg.getTemplateNameLoc(), Record); in AddTemplateArgumentLocInfo()
4847 AddNestedNameSpecifierLoc(Arg.getTemplateQualifierLoc(), Record); in AddTemplateArgumentLocInfo()
4848 AddSourceLocation(Arg.getTemplateNameLoc(), Record); in AddTemplateArgumentLocInfo()
4849 AddSourceLocation(Arg.getTemplateEllipsisLoc(), Record); in AddTemplateArgumentLocInfo()
4862 RecordDataImpl &Record) { in AddTemplateArgumentLoc() argument
4863 AddTemplateArgument(Arg.getArgument(), Record); in AddTemplateArgumentLoc()
4868 Record.push_back(InfoHasSameExpr); in AddTemplateArgumentLoc()
4873 Record); in AddTemplateArgumentLoc()
4877 RecordDataImpl &Record) { in AddTypeSourceInfo() argument
4879 AddTypeRef(QualType(), Record); in AddTypeSourceInfo()
4883 AddTypeLoc(TInfo->getTypeLoc(), Record); in AddTypeSourceInfo()
4886 void ASTWriter::AddTypeLoc(TypeLoc TL, RecordDataImpl &Record) { in AddTypeLoc() argument
4887 AddTypeRef(TL.getType(), Record); in AddTypeLoc()
4889 TypeLocWriter TLW(*this, Record); in AddTypeLoc()
4894 void ASTWriter::AddTypeRef(QualType T, RecordDataImpl &Record) { in AddTypeRef() argument
4895 Record.push_back(GetOrCreateTypeID(T)); in AddTypeRef()
4934 void ASTWriter::AddDeclRef(const Decl *D, RecordDataImpl &Record) { in AddDeclRef() argument
4935 Record.push_back(GetDeclRef(D)); in AddDeclRef()
5024 void ASTWriter::AddDeclarationName(DeclarationName Name, RecordDataImpl &Record) { in AddDeclarationName() argument
5026 Record.push_back(Name.getNameKind()); in AddDeclarationName()
5029 AddIdentifierRef(Name.getAsIdentifierInfo(), Record); in AddDeclarationName()
5035 AddSelectorRef(Name.getObjCSelector(), Record); in AddDeclarationName()
5041 AddTypeRef(Name.getCXXNameType(), Record); in AddDeclarationName()
5045 Record.push_back(Name.getCXXOverloadedOperator()); in AddDeclarationName()
5049 AddIdentifierRef(Name.getCXXLiteralIdentifier(), Record); in AddDeclarationName()
5080 DeclarationName Name, RecordDataImpl &Record) { in AddDeclarationNameLoc() argument
5085 AddTypeSourceInfo(DNLoc.NamedType.TInfo, Record); in AddDeclarationNameLoc()
5091 Record); in AddDeclarationNameLoc()
5094 Record); in AddDeclarationNameLoc()
5100 Record); in AddDeclarationNameLoc()
5113 RecordDataImpl &Record) { in AddDeclarationNameInfo() argument
5114 AddDeclarationName(NameInfo.getName(), Record); in AddDeclarationNameInfo()
5115 AddSourceLocation(NameInfo.getLoc(), Record); in AddDeclarationNameInfo()
5116 AddDeclarationNameLoc(NameInfo.getInfo(), NameInfo.getName(), Record); in AddDeclarationNameInfo()
5120 RecordDataImpl &Record) { in AddQualifierInfo() argument
5121 AddNestedNameSpecifierLoc(Info.QualifierLoc, Record); in AddQualifierInfo()
5122 Record.push_back(Info.NumTemplParamLists); in AddQualifierInfo()
5124 AddTemplateParameterList(Info.TemplParamLists[i], Record); in AddQualifierInfo()
5128 RecordDataImpl &Record) { in AddNestedNameSpecifier() argument
5139 Record.push_back(NestedNames.size()); in AddNestedNameSpecifier()
5143 Record.push_back(Kind); in AddNestedNameSpecifier()
5146 AddIdentifierRef(NNS->getAsIdentifier(), Record); in AddNestedNameSpecifier()
5150 AddDeclRef(NNS->getAsNamespace(), Record); in AddNestedNameSpecifier()
5154 AddDeclRef(NNS->getAsNamespaceAlias(), Record); in AddNestedNameSpecifier()
5159 AddTypeRef(QualType(NNS->getAsType(), 0), Record); in AddNestedNameSpecifier()
5160 Record.push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate); in AddNestedNameSpecifier()
5168 AddDeclRef(NNS->getAsRecordDecl(), Record); in AddNestedNameSpecifier()
5175 RecordDataImpl &Record) { in AddNestedNameSpecifierLoc() argument
5187 Record.push_back(NestedNames.size()); in AddNestedNameSpecifierLoc()
5192 Record.push_back(Kind); in AddNestedNameSpecifierLoc()
5195 AddIdentifierRef(NNS.getNestedNameSpecifier()->getAsIdentifier(), Record); in AddNestedNameSpecifierLoc()
5196 AddSourceRange(NNS.getLocalSourceRange(), Record); in AddNestedNameSpecifierLoc()
5200 AddDeclRef(NNS.getNestedNameSpecifier()->getAsNamespace(), Record); in AddNestedNameSpecifierLoc()
5201 AddSourceRange(NNS.getLocalSourceRange(), Record); in AddNestedNameSpecifierLoc()
5205 AddDeclRef(NNS.getNestedNameSpecifier()->getAsNamespaceAlias(), Record); in AddNestedNameSpecifierLoc()
5206 AddSourceRange(NNS.getLocalSourceRange(), Record); in AddNestedNameSpecifierLoc()
5211 Record.push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate); in AddNestedNameSpecifierLoc()
5212 AddTypeLoc(NNS.getTypeLoc(), Record); in AddNestedNameSpecifierLoc()
5213 AddSourceLocation(NNS.getLocalSourceRange().getEnd(), Record); in AddNestedNameSpecifierLoc()
5217 AddSourceLocation(NNS.getLocalSourceRange().getEnd(), Record); in AddNestedNameSpecifierLoc()
5221 AddDeclRef(NNS.getNestedNameSpecifier()->getAsRecordDecl(), Record); in AddNestedNameSpecifierLoc()
5222 AddSourceRange(NNS.getLocalSourceRange(), Record); in AddNestedNameSpecifierLoc()
5228 void ASTWriter::AddTemplateName(TemplateName Name, RecordDataImpl &Record) { in AddTemplateName() argument
5230 Record.push_back(Kind); in AddTemplateName()
5233 AddDeclRef(Name.getAsTemplateDecl(), Record); in AddTemplateName()
5238 Record.push_back(OvT->size()); in AddTemplateName()
5240 AddDeclRef(I, Record); in AddTemplateName()
5246 AddNestedNameSpecifier(QualT->getQualifier(), Record); in AddTemplateName()
5247 Record.push_back(QualT->hasTemplateKeyword()); in AddTemplateName()
5248 AddDeclRef(QualT->getTemplateDecl(), Record); in AddTemplateName()
5254 AddNestedNameSpecifier(DepT->getQualifier(), Record); in AddTemplateName()
5255 Record.push_back(DepT->isIdentifier()); in AddTemplateName()
5257 AddIdentifierRef(DepT->getIdentifier(), Record); in AddTemplateName()
5259 Record.push_back(DepT->getOperator()); in AddTemplateName()
5266 AddDeclRef(subst->getParameter(), Record); in AddTemplateName()
5267 AddTemplateName(subst->getReplacement(), Record); in AddTemplateName()
5274 AddDeclRef(SubstPack->getParameterPack(), Record); in AddTemplateName()
5275 AddTemplateArgument(SubstPack->getArgumentPack(), Record); in AddTemplateName()
5282 RecordDataImpl &Record) { in AddTemplateArgument() argument
5283 Record.push_back(Arg.getKind()); in AddTemplateArgument()
5288 AddTypeRef(Arg.getAsType(), Record); in AddTemplateArgument()
5291 AddDeclRef(Arg.getAsDecl(), Record); in AddTemplateArgument()
5292 AddTypeRef(Arg.getParamTypeForDecl(), Record); in AddTemplateArgument()
5295 AddTypeRef(Arg.getNullPtrType(), Record); in AddTemplateArgument()
5298 AddAPSInt(Arg.getAsIntegral(), Record); in AddTemplateArgument()
5299 AddTypeRef(Arg.getIntegralType(), Record); in AddTemplateArgument()
5302 AddTemplateName(Arg.getAsTemplateOrTemplatePattern(), Record); in AddTemplateArgument()
5305 AddTemplateName(Arg.getAsTemplateOrTemplatePattern(), Record); in AddTemplateArgument()
5307 Record.push_back(*NumExpansions + 1); in AddTemplateArgument()
5309 Record.push_back(0); in AddTemplateArgument()
5315 Record.push_back(Arg.pack_size()); in AddTemplateArgument()
5317 AddTemplateArgument(P, Record); in AddTemplateArgument()
5324 RecordDataImpl &Record) { in AddTemplateParameterList() argument
5326 AddSourceLocation(TemplateParams->getTemplateLoc(), Record); in AddTemplateParameterList()
5327 AddSourceLocation(TemplateParams->getLAngleLoc(), Record); in AddTemplateParameterList()
5328 AddSourceLocation(TemplateParams->getRAngleLoc(), Record); in AddTemplateParameterList()
5329 Record.push_back(TemplateParams->size()); in AddTemplateParameterList()
5331 AddDeclRef(P, Record); in AddTemplateParameterList()
5337 RecordDataImpl &Record) { in AddTemplateArgumentList() argument
5339 Record.push_back(TemplateArgs->size()); in AddTemplateArgumentList()
5341 AddTemplateArgument(TemplateArgs->get(i), Record); in AddTemplateArgumentList()
5346 (const ASTTemplateArgumentListInfo *ASTTemplArgList, RecordDataImpl &Record) { in AddASTTemplateArgumentListInfo() argument
5348 AddSourceLocation(ASTTemplArgList->LAngleLoc, Record); in AddASTTemplateArgumentListInfo()
5349 AddSourceLocation(ASTTemplArgList->RAngleLoc, Record); in AddASTTemplateArgumentListInfo()
5350 Record.push_back(ASTTemplArgList->NumTemplateArgs); in AddASTTemplateArgumentListInfo()
5353 AddTemplateArgumentLoc(TemplArgs[i], Record); in AddASTTemplateArgumentListInfo()
5357 ASTWriter::AddUnresolvedSet(const ASTUnresolvedSet &Set, RecordDataImpl &Record) { in AddUnresolvedSet() argument
5358 Record.push_back(Set.size()); in AddUnresolvedSet()
5361 AddDeclRef(I.getDecl(), Record); in AddUnresolvedSet()
5362 Record.push_back(I.getAccess()); in AddUnresolvedSet()
5367 RecordDataImpl &Record) { in AddCXXBaseSpecifier() argument
5368 Record.push_back(Base.isVirtual()); in AddCXXBaseSpecifier()
5369 Record.push_back(Base.isBaseOfClass()); in AddCXXBaseSpecifier()
5370 Record.push_back(Base.getAccessSpecifierAsWritten()); in AddCXXBaseSpecifier()
5371 Record.push_back(Base.getInheritConstructors()); in AddCXXBaseSpecifier()
5372 AddTypeSourceInfo(Base.getTypeSourceInfo(), Record); in AddCXXBaseSpecifier()
5373 AddSourceRange(Base.getSourceRange(), Record); in AddCXXBaseSpecifier()
5376 Record); in AddCXXBaseSpecifier()
5380 RecordData Record; in FlushCXXBaseSpecifiers() local
5383 Record.clear(); in FlushCXXBaseSpecifiers()
5385 // Record the offset of this base-specifier set. in FlushCXXBaseSpecifiers()
5397 Record.push_back(BEnd - B); in FlushCXXBaseSpecifiers()
5399 AddCXXBaseSpecifier(*B, Record); in FlushCXXBaseSpecifiers()
5400 Stream.EmitRecord(serialization::DECL_CXX_BASE_SPECIFIERS, Record); in FlushCXXBaseSpecifiers()
5414 RecordDataImpl &Record) { in AddCXXCtorInitializers() argument
5415 Record.push_back(NumCtorInitializers); in AddCXXCtorInitializers()
5420 Record.push_back(CTOR_INITIALIZER_BASE); in AddCXXCtorInitializers()
5421 AddTypeSourceInfo(Init->getTypeSourceInfo(), Record); in AddCXXCtorInitializers()
5422 Record.push_back(Init->isBaseVirtual()); in AddCXXCtorInitializers()
5424 Record.push_back(CTOR_INITIALIZER_DELEGATING); in AddCXXCtorInitializers()
5425 AddTypeSourceInfo(Init->getTypeSourceInfo(), Record); in AddCXXCtorInitializers()
5427 Record.push_back(CTOR_INITIALIZER_MEMBER); in AddCXXCtorInitializers()
5428 AddDeclRef(Init->getMember(), Record); in AddCXXCtorInitializers()
5430 Record.push_back(CTOR_INITIALIZER_INDIRECT_MEMBER); in AddCXXCtorInitializers()
5431 AddDeclRef(Init->getIndirectMember(), Record); in AddCXXCtorInitializers()
5434 AddSourceLocation(Init->getMemberLocation(), Record); in AddCXXCtorInitializers()
5436 AddSourceLocation(Init->getLParenLoc(), Record); in AddCXXCtorInitializers()
5437 AddSourceLocation(Init->getRParenLoc(), Record); in AddCXXCtorInitializers()
5438 Record.push_back(Init->isWritten()); in AddCXXCtorInitializers()
5440 Record.push_back(Init->getSourceOrder()); in AddCXXCtorInitializers()
5442 Record.push_back(Init->getNumArrayIndices()); in AddCXXCtorInitializers()
5444 AddDeclRef(Init->getArrayIndex(i), Record); in AddCXXCtorInitializers()
5450 RecordData Record; in FlushCXXCtorInitializers() local
5455 Record.clear(); in FlushCXXCtorInitializers()
5457 // Record the offset of this mem-initializer list. in FlushCXXCtorInitializers()
5467 AddCXXCtorInitializers(Init.Inits.data(), Init.Inits.size(), Record); in FlushCXXCtorInitializers()
5468 Stream.EmitRecord(serialization::DECL_CXX_CTOR_INITIALIZERS, Record); in FlushCXXCtorInitializers()
5479 void ASTWriter::AddCXXDefinitionData(const CXXRecordDecl *D, RecordDataImpl &Record) { in AddCXXDefinitionData() argument
5481 Record.push_back(Data.IsLambda); in AddCXXDefinitionData()
5482 Record.push_back(Data.UserDeclaredConstructor); in AddCXXDefinitionData()
5483 Record.push_back(Data.UserDeclaredSpecialMembers); in AddCXXDefinitionData()
5484 Record.push_back(Data.Aggregate); in AddCXXDefinitionData()
5485 Record.push_back(Data.PlainOldData); in AddCXXDefinitionData()
5486 Record.push_back(Data.Empty); in AddCXXDefinitionData()
5487 Record.push_back(Data.Polymorphic); in AddCXXDefinitionData()
5488 Record.push_back(Data.Abstract); in AddCXXDefinitionData()
5489 Record.push_back(Data.IsStandardLayout); in AddCXXDefinitionData()
5490 Record.push_back(Data.HasNoNonEmptyBases); in AddCXXDefinitionData()
5491 Record.push_back(Data.HasPrivateFields); in AddCXXDefinitionData()
5492 Record.push_back(Data.HasProtectedFields); in AddCXXDefinitionData()
5493 Record.push_back(Data.HasPublicFields); in AddCXXDefinitionData()
5494 Record.push_back(Data.HasMutableFields); in AddCXXDefinitionData()
5495 Record.push_back(Data.HasVariantMembers); in AddCXXDefinitionData()
5496 Record.push_back(Data.HasOnlyCMembers); in AddCXXDefinitionData()
5497 Record.push_back(Data.HasInClassInitializer); in AddCXXDefinitionData()
5498 Record.push_back(Data.HasUninitializedReferenceMember); in AddCXXDefinitionData()
5499 Record.push_back(Data.NeedOverloadResolutionForMoveConstructor); in AddCXXDefinitionData()
5500 Record.push_back(Data.NeedOverloadResolutionForMoveAssignment); in AddCXXDefinitionData()
5501 Record.push_back(Data.NeedOverloadResolutionForDestructor); in AddCXXDefinitionData()
5502 Record.push_back(Data.DefaultedMoveConstructorIsDeleted); in AddCXXDefinitionData()
5503 Record.push_back(Data.DefaultedMoveAssignmentIsDeleted); in AddCXXDefinitionData()
5504 Record.push_back(Data.DefaultedDestructorIsDeleted); in AddCXXDefinitionData()
5505 Record.push_back(Data.HasTrivialSpecialMembers); in AddCXXDefinitionData()
5506 Record.push_back(Data.DeclaredNonTrivialSpecialMembers); in AddCXXDefinitionData()
5507 Record.push_back(Data.HasIrrelevantDestructor); in AddCXXDefinitionData()
5508 Record.push_back(Data.HasConstexprNonCopyMoveConstructor); in AddCXXDefinitionData()
5509 Record.push_back(Data.DefaultedDefaultConstructorIsConstexpr); in AddCXXDefinitionData()
5510 Record.push_back(Data.HasConstexprDefaultConstructor); in AddCXXDefinitionData()
5511 Record.push_back(Data.HasNonLiteralTypeFieldsOrBases); in AddCXXDefinitionData()
5512 Record.push_back(Data.ComputedVisibleConversions); in AddCXXDefinitionData()
5513 Record.push_back(Data.UserProvidedDefaultConstructor); in AddCXXDefinitionData()
5514 Record.push_back(Data.DeclaredSpecialMembers); in AddCXXDefinitionData()
5515 Record.push_back(Data.ImplicitCopyConstructorHasConstParam); in AddCXXDefinitionData()
5516 Record.push_back(Data.ImplicitCopyAssignmentHasConstParam); in AddCXXDefinitionData()
5517 Record.push_back(Data.HasDeclaredCopyConstructorWithConstParam); in AddCXXDefinitionData()
5518 Record.push_back(Data.HasDeclaredCopyAssignmentWithConstParam); in AddCXXDefinitionData()
5521 Record.push_back(Data.NumBases); in AddCXXDefinitionData()
5524 Record); in AddCXXDefinitionData()
5527 Record.push_back(Data.NumVBases); in AddCXXDefinitionData()
5530 Record); in AddCXXDefinitionData()
5532 AddUnresolvedSet(Data.Conversions.get(*Context), Record); in AddCXXDefinitionData()
5533 AddUnresolvedSet(Data.VisibleConversions.get(*Context), Record); in AddCXXDefinitionData()
5535 AddDeclRef(D->getFirstFriend(), Record); in AddCXXDefinitionData()
5540 Record.push_back(Lambda.Dependent); in AddCXXDefinitionData()
5541 Record.push_back(Lambda.IsGenericLambda); in AddCXXDefinitionData()
5542 Record.push_back(Lambda.CaptureDefault); in AddCXXDefinitionData()
5543 Record.push_back(Lambda.NumCaptures); in AddCXXDefinitionData()
5544 Record.push_back(Lambda.NumExplicitCaptures); in AddCXXDefinitionData()
5545 Record.push_back(Lambda.ManglingNumber); in AddCXXDefinitionData()
5546 AddDeclRef(Lambda.ContextDecl, Record); in AddCXXDefinitionData()
5547 AddTypeSourceInfo(Lambda.MethodTyInfo, Record); in AddCXXDefinitionData()
5550 AddSourceLocation(Capture.getLocation(), Record); in AddCXXDefinitionData()
5551 Record.push_back(Capture.isImplicit()); in AddCXXDefinitionData()
5552 Record.push_back(Capture.getCaptureKind()); in AddCXXDefinitionData()
5561 AddDeclRef(Var, Record); in AddCXXDefinitionData()
5564 Record); in AddCXXDefinitionData()
5718 // chain, add an update record for it. in ResolvedExceptionSpec()
5809 const RecordDecl *Record) { in AddedAttributeToRecord() argument
5811 if (!Record->isFromASTFile()) in AddedAttributeToRecord()
5813 DeclUpdates[Record].push_back(DeclUpdate(UPD_ADDED_ATTR_TO_RECORD, Attr)); in AddedAttributeToRecord()