Lines Matching full:record

314   ASTWriter::RecordData Record;
319 : Writer(Writer), BasicWriter(Context, Writer, Record) {}
340 ASTRecordWriter &Record;
344 Record.AddSourceLocation(Loc, Seq);
346 void addSourceRange(SourceRange Range) { Record.AddSourceRange(Range, Seq); }
349 TypeLocWriter(ASTRecordWriter &Record, LocSeq *Seq)
350 : Record(Record), Seq(Seq) {}
370 Record.push_back(TL.getWrittenTypeSpec());
371 Record.push_back(static_cast<uint64_t>(TL.getWrittenSignSpec()));
372 Record.push_back(static_cast<uint64_t>(TL.getWrittenWidthSpec()));
373 Record.push_back(TL.hasModeAttr());
411 Record.AddTypeSourceInfo(TL.getClassTInfo());
417 Record.push_back(TL.getSizeExpr() ? 1 : 0);
419 Record.AddStmt(TL.getSizeExpr());
445 Record.AddStmt(TL.getAttrExprOperand());
471 Record.AddStmt(TL.getAttrRowOperand());
472 Record.AddStmt(TL.getAttrColumnOperand());
481 Record.AddStmt(TL.getAttrRowOperand());
482 Record.AddStmt(TL.getAttrColumnOperand());
492 Record.AddDeclRef(TL.getParam(i));
534 Record.AddTypeSourceInfo(TL.getUnmodifiedTInfo());
546 Record.AddTypeSourceInfo(TL.getUnderlyingTInfo());
568 Record.push_back(TL.isConstrained() && CR);
570 Record.AddConceptReference(CR);
571 Record.push_back(TL.isDecltypeAuto());
590 Record.AddAttr(TL.getAttr());
627 Record.AddTemplateArgumentLocInfo(TL.getArgLoc(i).getArgument().getKind(),
642 Record.AddNestedNameSpecifierLoc(TL.getQualifierLoc());
651 Record.AddNestedNameSpecifierLoc(TL.getQualifierLoc());
658 Record.AddNestedNameSpecifierLoc(TL.getQualifierLoc());
664 Record.AddTemplateArgumentLocInfo(TL.getArgLoc(I).getArgument().getKind(),
678 Record.push_back(TL.hasBaseTypeAsWritten());
682 Record.AddTypeSourceInfo(TL.getTypeArgTInfo(i));
730 ASTWriter::RecordDataImpl &Record) {
731 Record.clear();
732 Record.push_back(ID);
733 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_SETBID, Record);
738 Record.clear();
740 Record.push_back(*Name++);
741 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_BLOCKNAME, Record);
746 ASTWriter::RecordDataImpl &Record) {
747 Record.clear();
748 Record.push_back(ID);
750 Record.push_back(*Name++);
751 Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_SETRECORDNAME, Record);
755 ASTWriter::RecordDataImpl &Record) {
756 #define RECORD(X) EmitRecordID(X, #X, Stream, Record)
757 RECORD(STMT_STOP);
758 RECORD(STMT_NULL_PTR);
759 RECORD(STMT_REF_PTR);
760 RECORD(STMT_NULL);
761 RECORD(STMT_COMPOUND);
762 RECORD(STMT_CASE);
763 RECORD(STMT_DEFAULT);
764 RECORD(STMT_LABEL);
765 RECORD(STMT_ATTRIBUTED);
766 RECORD(STMT_IF);
767 RECORD(STMT_SWITCH);
768 RECORD(STMT_WHILE);
769 RECORD(STMT_DO);
770 RECORD(STMT_FOR);
771 RECORD(STMT_GOTO);
772 RECORD(STMT_INDIRECT_GOTO);
773 RECORD(STMT_CONTINUE);
774 RECORD(STMT_BREAK);
775 RECORD(STMT_RETURN);
776 RECORD(STMT_DECL);
777 RECORD(STMT_GCCASM);
778 RECORD(STMT_MSASM);
779 RECORD(EXPR_PREDEFINED);
780 RECORD(EXPR_DECL_REF);
781 RECORD(EXPR_INTEGER_LITERAL);
782 RECORD(EXPR_FIXEDPOINT_LITERAL);
783 RECORD(EXPR_FLOATING_LITERAL);
784 RECORD(EXPR_IMAGINARY_LITERAL);
785 RECORD(EXPR_STRING_LITERAL);
786 RECORD(EXPR_CHARACTER_LITERAL);
787 RECORD(EXPR_PAREN);
788 RECORD(EXPR_PAREN_LIST);
789 RECORD(EXPR_UNARY_OPERATOR);
790 RECORD(EXPR_SIZEOF_ALIGN_OF);
791 RECORD(EXPR_ARRAY_SUBSCRIPT);
792 RECORD(EXPR_CALL);
793 RECORD(EXPR_MEMBER);
794 RECORD(EXPR_BINARY_OPERATOR);
795 RECORD(EXPR_COMPOUND_ASSIGN_OPERATOR);
796 RECORD(EXPR_CONDITIONAL_OPERATOR);
797 RECORD(EXPR_IMPLICIT_CAST);
798 RECORD(EXPR_CSTYLE_CAST);
799 RECORD(EXPR_COMPOUND_LITERAL);
800 RECORD(EXPR_EXT_VECTOR_ELEMENT);
801 RECORD(EXPR_INIT_LIST);
802 RECORD(EXPR_DESIGNATED_INIT);
803 RECORD(EXPR_DESIGNATED_INIT_UPDATE);
804 RECORD(EXPR_IMPLICIT_VALUE_INIT);
805 RECORD(EXPR_NO_INIT);
806 RECORD(EXPR_VA_ARG);
807 RECORD(EXPR_ADDR_LABEL);
808 RECORD(EXPR_STMT);
809 RECORD(EXPR_CHOOSE);
810 RECORD(EXPR_GNU_NULL);
811 RECORD(EXPR_SHUFFLE_VECTOR);
812 RECORD(EXPR_BLOCK);
813 RECORD(EXPR_GENERIC_SELECTION);
814 RECORD(EXPR_OBJC_STRING_LITERAL);
815 RECORD(EXPR_OBJC_BOXED_EXPRESSION);
816 RECORD(EXPR_OBJC_ARRAY_LITERAL);
817 RECORD(EXPR_OBJC_DICTIONARY_LITERAL);
818 RECORD(EXPR_OBJC_ENCODE);
819 RECORD(EXPR_OBJC_SELECTOR_EXPR);
820 RECORD(EXPR_OBJC_PROTOCOL_EXPR);
821 RECORD(EXPR_OBJC_IVAR_REF_EXPR);
822 RECORD(EXPR_OBJC_PROPERTY_REF_EXPR);
823 RECORD(EXPR_OBJC_KVC_REF_EXPR);
824 RECORD(EXPR_OBJC_MESSAGE_EXPR);
825 RECORD(STMT_OBJC_FOR_COLLECTION);
826 RECORD(STMT_OBJC_CATCH);
827 RECORD(STMT_OBJC_FINALLY);
828 RECORD(STMT_OBJC_AT_TRY);
829 RECORD(STMT_OBJC_AT_SYNCHRONIZED);
830 RECORD(STMT_OBJC_AT_THROW);
831 RECORD(EXPR_OBJC_BOOL_LITERAL);
832 RECORD(STMT_CXX_CATCH);
833 RECORD(STMT_CXX_TRY);
834 RECORD(STMT_CXX_FOR_RANGE);
835 RECORD(EXPR_CXX_OPERATOR_CALL);
836 RECORD(EXPR_CXX_MEMBER_CALL);
837 RECORD(EXPR_CXX_REWRITTEN_BINARY_OPERATOR);
838 RECORD(EXPR_CXX_CONSTRUCT);
839 RECORD(EXPR_CXX_TEMPORARY_OBJECT);
840 RECORD(EXPR_CXX_STATIC_CAST);
841 RECORD(EXPR_CXX_DYNAMIC_CAST);
842 RECORD(EXPR_CXX_REINTERPRET_CAST);
843 RECORD(EXPR_CXX_CONST_CAST);
844 RECORD(EXPR_CXX_ADDRSPACE_CAST);
845 RECORD(EXPR_CXX_FUNCTIONAL_CAST);
846 RECORD(EXPR_USER_DEFINED_LITERAL);
847 RECORD(EXPR_CXX_STD_INITIALIZER_LIST);
848 RECORD(EXPR_CXX_BOOL_LITERAL);
849 RECORD(EXPR_CXX_PAREN_LIST_INIT);
850 RECORD(EXPR_CXX_NULL_PTR_LITERAL);
851 RECORD(EXPR_CXX_TYPEID_EXPR);
852 RECORD(EXPR_CXX_TYPEID_TYPE);
853 RECORD(EXPR_CXX_THIS);
854 RECORD(EXPR_CXX_THROW);
855 RECORD(EXPR_CXX_DEFAULT_ARG);
856 RECORD(EXPR_CXX_DEFAULT_INIT);
857 RECORD(EXPR_CXX_BIND_TEMPORARY);
858 RECORD(EXPR_CXX_SCALAR_VALUE_INIT);
859 RECORD(EXPR_CXX_NEW);
860 RECORD(EXPR_CXX_DELETE);
861 RECORD(EXPR_CXX_PSEUDO_DESTRUCTOR);
862 RECORD(EXPR_EXPR_WITH_CLEANUPS);
863 RECORD(EXPR_CXX_DEPENDENT_SCOPE_MEMBER);
864 RECORD(EXPR_CXX_DEPENDENT_SCOPE_DECL_REF);
865 RECORD(EXPR_CXX_UNRESOLVED_CONSTRUCT);
866 RECORD(EXPR_CXX_UNRESOLVED_MEMBER);
867 RECORD(EXPR_CXX_UNRESOLVED_LOOKUP);
868 RECORD(EXPR_CXX_EXPRESSION_TRAIT);
869 RECORD(EXPR_CXX_NOEXCEPT);
870 RECORD(EXPR_OPAQUE_VALUE);
871 RECORD(EXPR_BINARY_CONDITIONAL_OPERATOR);
872 RECORD(EXPR_TYPE_TRAIT);
873 RECORD(EXPR_ARRAY_TYPE_TRAIT);
874 RECORD(EXPR_PACK_EXPANSION);
875 RECORD(EXPR_SIZEOF_PACK);
876 RECORD(EXPR_PACK_INDEXING);
877 RECORD(EXPR_RESOLVED_UNEXPANDED_PACK);
878 RECORD(EXPR_SUBST_NON_TYPE_TEMPLATE_PARM);
879 RECORD(EXPR_SUBST_NON_TYPE_TEMPLATE_PARM_PACK);
880 RECORD(EXPR_FUNCTION_PARM_PACK);
881 RECORD(EXPR_MATERIALIZE_TEMPORARY);
882 RECORD(EXPR_CUDA_KERNEL_CALL);
883 RECORD(EXPR_CXX_UUIDOF_EXPR);
884 RECORD(EXPR_CXX_UUIDOF_TYPE);
885 RECORD(EXPR_LAMBDA);
886 #undef RECORD
890 RecordData Record;
893 #define BLOCK(X) EmitBlockID(X ## _ID, #X, Stream, Record)
894 #define RECORD(X) EmitRecordID(X, #X, Stream, Record)
898 RECORD(METADATA);
899 RECORD(MODULE_NAME);
900 RECORD(MODULE_DIRECTORY);
901 RECORD(MODULE_MAP_FILE);
902 RECORD(IMPORT);
903 RECORD(ORIGINAL_FILE);
904 RECORD(ORIGINAL_FILE_ID);
905 RECORD(INPUT_FILE_OFFSETS);
908 RECORD(LANGUAGE_OPTIONS);
909 RECORD(TARGET_OPTIONS);
910 RECORD(FILE_SYSTEM_OPTIONS);
911 RECORD(HEADER_SEARCH_OPTIONS);
912 RECORD(PREPROCESSOR_OPTIONS);
915 RECORD(INPUT_FILE);
916 RECORD(INPUT_FILE_HASH);
920 RECORD(TYPE_OFFSET);
921 RECORD(DECL_OFFSET);
922 RECORD(IDENTIFIER_OFFSET);
923 RECORD(IDENTIFIER_TABLE);
924 RECORD(EAGERLY_DESERIALIZED_DECLS);
925 RECORD(MODULAR_CODEGEN_DECLS);
926 RECORD(SPECIAL_TYPES);
927 RECORD(STATISTICS);
928 RECORD(TENTATIVE_DEFINITIONS);
929 RECORD(SELECTOR_OFFSETS);
930 RECORD(METHOD_POOL);
931 RECORD(PP_COUNTER_VALUE);
932 RECORD(SOURCE_LOCATION_OFFSETS);
933 RECORD(EXT_VECTOR_DECLS);
934 RECORD(UNUSED_FILESCOPED_DECLS);
935 RECORD(PPD_ENTITIES_OFFSETS);
936 RECORD(VTABLE_USES);
937 RECORD(PPD_SKIPPED_RANGES);
938 RECORD(REFERENCED_SELECTOR_POOL);
939 RECORD(TU_UPDATE_LEXICAL);
940 RECORD(SEMA_DECL_REFS);
941 RECORD(WEAK_UNDECLARED_IDENTIFIERS);
942 RECORD(PENDING_IMPLICIT_INSTANTIATIONS);
943 RECORD(UPDATE_VISIBLE);
944 RECORD(DELAYED_NAMESPACE_LEXICAL_VISIBLE_RECORD);
945 RECORD(RELATED_DECLS_MAP);
946 RECORD(DECL_UPDATE_OFFSETS);
947 RECORD(DECL_UPDATES);
948 RECORD(CUDA_SPECIAL_DECL_REFS);
949 RECORD(HEADER_SEARCH_TABLE);
950 RECORD(FP_PRAGMA_OPTIONS);
951 RECORD(OPENCL_EXTENSIONS);
952 RECORD(OPENCL_EXTENSION_TYPES);
953 RECORD(OPENCL_EXTENSION_DECLS);
954 RECORD(DELEGATING_CTORS);
955 RECORD(KNOWN_NAMESPACES);
956 RECORD(MODULE_OFFSET_MAP);
957 RECORD(SOURCE_MANAGER_LINE_TABLE);
958 RECORD(OBJC_CATEGORIES_MAP);
959 RECORD(FILE_SORTED_DECLS);
960 RECORD(IMPORTED_MODULES);
961 RECORD(OBJC_CATEGORIES);
962 RECORD(MACRO_OFFSET);
963 RECORD(INTERESTING_IDENTIFIERS);
964 RECORD(UNDEFINED_BUT_USED);
965 RECORD(LATE_PARSED_TEMPLATE);
966 RECORD(OPTIMIZE_PRAGMA_OPTIONS);
967 RECORD(MSSTRUCT_PRAGMA_OPTIONS);
968 RECORD(POINTERS_TO_MEMBERS_PRAGMA_OPTIONS);
969 RECORD(UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES);
970 RECORD(DELETE_EXPRS_TO_ANALYZE);
971 RECORD(CUDA_PRAGMA_FORCE_HOST_DEVICE_DEPTH);
972 RECORD(PP_CONDITIONAL_STACK);
973 RECORD(DECLS_TO_CHECK_FOR_DEFERRED_DIAGS);
974 RECORD(PP_ASSUME_NONNULL_LOC);
975 RECORD(PP_UNSAFE_BUFFER_USAGE);
976 RECORD(VTABLES_TO_EMIT);
980 RECORD(SM_SLOC_FILE_ENTRY);
981 RECORD(SM_SLOC_BUFFER_ENTRY);
982 RECORD(SM_SLOC_BUFFER_BLOB);
983 RECORD(SM_SLOC_BUFFER_BLOB_COMPRESSED);
984 RECORD(SM_SLOC_EXPANSION_ENTRY);
988 RECORD(PP_MACRO_DIRECTIVE_HISTORY);
989 RECORD(PP_MACRO_FUNCTION_LIKE);
990 RECORD(PP_MACRO_OBJECT_LIKE);
991 RECORD(PP_MODULE_MACRO);
992 RECORD(PP_TOKEN);
996 RECORD(SUBMODULE_METADATA);
997 RECORD(SUBMODULE_DEFINITION);
998 RECORD(SUBMODULE_UMBRELLA_HEADER);
999 RECORD(SUBMODULE_HEADER);
1000 RECORD(SUBMODULE_TOPHEADER);
1001 RECORD(SUBMODULE_UMBRELLA_DIR);
1002 RECORD(SUBMODULE_IMPORTS);
1003 RECORD(SUBMODULE_AFFECTING_MODULES);
1004 RECORD(SUBMODULE_EXPORTS);
1005 RECORD(SUBMODULE_REQUIRES);
1006 RECORD(SUBMODULE_EXCLUDED_HEADER);
1007 RECORD(SUBMODULE_LINK_LIBRARY);
1008 RECORD(SUBMODULE_CONFIG_MACRO);
1009 RECORD(SUBMODULE_CONFLICT);
1010 RECORD(SUBMODULE_PRIVATE_HEADER);
1011 RECORD(SUBMODULE_TEXTUAL_HEADER);
1012 RECORD(SUBMODULE_PRIVATE_TEXTUAL_HEADER);
1013 RECORD(SUBMODULE_INITIALIZERS);
1014 RECORD(SUBMODULE_EXPORT_AS);
1018 RECORD(COMMENTS_RAW_COMMENT);
1022 RECORD(TYPE_EXT_QUAL);
1023 RECORD(TYPE_COMPLEX);
1024 RECORD(TYPE_POINTER);
1025 RECORD(TYPE_BLOCK_POINTER);
1026 RECORD(TYPE_LVALUE_REFERENCE);
1027 RECORD(TYPE_RVALUE_REFERENCE);
1028 RECORD(TYPE_MEMBER_POINTER);
1029 RECORD(TYPE_CONSTANT_ARRAY);
1030 RECORD(TYPE_INCOMPLETE_ARRAY);
1031 RECORD(TYPE_VARIABLE_ARRAY);
1032 RECORD(TYPE_VECTOR);
1033 RECORD(TYPE_EXT_VECTOR);
1034 RECORD(TYPE_FUNCTION_NO_PROTO);
1035 RECORD(TYPE_FUNCTION_PROTO);
1036 RECORD(TYPE_TYPEDEF);
1037 RECORD(TYPE_TYPEOF_EXPR);
1038 RECORD(TYPE_TYPEOF);
1039 RECORD(TYPE_RECORD);
1040 RECORD(TYPE_ENUM);
1041 RECORD(TYPE_OBJC_INTERFACE);
1042 RECORD(TYPE_OBJC_OBJECT_POINTER);
1043 RECORD(TYPE_DECLTYPE);
1044 RECORD(TYPE_ELABORATED);
1045 RECORD(TYPE_SUBST_TEMPLATE_TYPE_PARM);
1046 RECORD(TYPE_UNRESOLVED_USING);
1047 RECORD(TYPE_INJECTED_CLASS_NAME);
1048 RECORD(TYPE_OBJC_OBJECT);
1049 RECORD(TYPE_TEMPLATE_TYPE_PARM);
1050 RECORD(TYPE_TEMPLATE_SPECIALIZATION);
1051 RECORD(TYPE_DEPENDENT_NAME);
1052 RECORD(TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION);
1053 RECORD(TYPE_DEPENDENT_SIZED_ARRAY);
1054 RECORD(TYPE_PAREN);
1055 RECORD(TYPE_MACRO_QUALIFIED);
1056 RECORD(TYPE_PACK_EXPANSION);
1057 RECORD(TYPE_ATTRIBUTED);
1058 RECORD(TYPE_SUBST_TEMPLATE_TYPE_PARM_PACK);
1059 RECORD(TYPE_AUTO);
1060 RECORD(TYPE_UNARY_TRANSFORM);
1061 RECORD(TYPE_ATOMIC);
1062 RECORD(TYPE_DECAYED);
1063 RECORD(TYPE_ADJUSTED);
1064 RECORD(TYPE_OBJC_TYPE_PARAM);
1065 RECORD(LOCAL_REDECLARATIONS);
1066 RECORD(DECL_TYPEDEF);
1067 RECORD(DECL_TYPEALIAS);
1068 RECORD(DECL_ENUM);
1069 RECORD(DECL_RECORD);
1070 RECORD(DECL_ENUM_CONSTANT);
1071 RECORD(DECL_FUNCTION);
1072 RECORD(DECL_OBJC_METHOD);
1073 RECORD(DECL_OBJC_INTERFACE);
1074 RECORD(DECL_OBJC_PROTOCOL);
1075 RECORD(DECL_OBJC_IVAR);
1076 RECORD(DECL_OBJC_AT_DEFS_FIELD);
1077 RECORD(DECL_OBJC_CATEGORY);
1078 RECORD(DECL_OBJC_CATEGORY_IMPL);
1079 RECORD(DECL_OBJC_IMPLEMENTATION);
1080 RECORD(DECL_OBJC_COMPATIBLE_ALIAS);
1081 RECORD(DECL_OBJC_PROPERTY);
1082 RECORD(DECL_OBJC_PROPERTY_IMPL);
1083 RECORD(DECL_FIELD);
1084 RECORD(DECL_MS_PROPERTY);
1085 RECORD(DECL_VAR);
1086 RECORD(DECL_IMPLICIT_PARAM);
1087 RECORD(DECL_PARM_VAR);
1088 RECORD(DECL_FILE_SCOPE_ASM);
1089 RECORD(DECL_BLOCK);
1090 RECORD(DECL_CONTEXT_LEXICAL);
1091 RECORD(DECL_CONTEXT_VISIBLE);
1092 RECORD(DECL_CONTEXT_MODULE_LOCAL_VISIBLE);
1093 RECORD(DECL_NAMESPACE);
1094 RECORD(DECL_NAMESPACE_ALIAS);
1095 RECORD(DECL_USING);
1096 RECORD(DECL_USING_SHADOW);
1097 RECORD(DECL_USING_DIRECTIVE);
1098 RECORD(DECL_UNRESOLVED_USING_VALUE);
1099 RECORD(DECL_UNRESOLVED_USING_TYPENAME);
1100 RECORD(DECL_LINKAGE_SPEC);
1101 RECORD(DECL_EXPORT);
1102 RECORD(DECL_CXX_RECORD);
1103 RECORD(DECL_CXX_METHOD);
1104 RECORD(DECL_CXX_CONSTRUCTOR);
1105 RECORD(DECL_CXX_DESTRUCTOR);
1106 RECORD(DECL_CXX_CONVERSION);
1107 RECORD(DECL_ACCESS_SPEC);
1108 RECORD(DECL_FRIEND);
1109 RECORD(DECL_FRIEND_TEMPLATE);
1110 RECORD(DECL_CLASS_TEMPLATE);
1111 RECORD(DECL_CLASS_TEMPLATE_SPECIALIZATION);
1112 RECORD(DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION);
1113 RECORD(DECL_VAR_TEMPLATE);
1114 RECORD(DECL_VAR_TEMPLATE_SPECIALIZATION);
1115 RECORD(DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION);
1116 RECORD(DECL_FUNCTION_TEMPLATE);
1117 RECORD(DECL_TEMPLATE_TYPE_PARM);
1118 RECORD(DECL_NON_TYPE_TEMPLATE_PARM);
1119 RECORD(DECL_TEMPLATE_TEMPLATE_PARM);
1120 RECORD(DECL_CONCEPT);
1121 RECORD(DECL_REQUIRES_EXPR_BODY);
1122 RECORD(DECL_TYPE_ALIAS_TEMPLATE);
1123 RECORD(DECL_STATIC_ASSERT);
1124 RECORD(DECL_CXX_BASE_SPECIFIERS);
1125 RECORD(DECL_CXX_CTOR_INITIALIZERS);
1126 RECORD(DECL_INDIRECTFIELD);
1127 RECORD(DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK);
1128 RECORD(DECL_EXPANDED_TEMPLATE_TEMPLATE_PARM_PACK);
1129 RECORD(DECL_IMPORT);
1130 RECORD(DECL_OMP_THREADPRIVATE);
1131 RECORD(DECL_EMPTY);
1132 RECORD(DECL_OBJC_TYPE_PARAM);
1133 RECORD(DECL_OMP_CAPTUREDEXPR);
1134 RECORD(DECL_PRAGMA_COMMENT);
1135 RECORD(DECL_PRAGMA_DETECT_MISMATCH);
1136 RECORD(DECL_OMP_DECLARE_REDUCTION);
1137 RECORD(DECL_OMP_ALLOCATE);
1138 RECORD(DECL_HLSL_BUFFER);
1141 AddStmtsExprs(Stream, Record);
1144 RECORD(PPD_MACRO_EXPANSION);
1145 RECORD(PPD_MACRO_DEFINITION);
1146 RECORD(PPD_INCLUSION_DIRECTIVE);
1150 RECORD(EXTENSION_METADATA);
1153 RECORD(SIGNATURE);
1154 RECORD(AST_BLOCK_HASH);
1155 RECORD(DIAGNOSTIC_OPTIONS);
1156 RECORD(HEADER_SEARCH_PATHS);
1157 RECORD(DIAG_PRAGMA_MAPPINGS);
1158 RECORD(HEADER_SEARCH_ENTRY_USAGE);
1159 RECORD(VFS_USAGE);
1161 #undef RECORD
1270 // get that naturally since we won't record the body of `a()` during the
1322 RecordData Record;
1334 // The bitstream VBR-encodes record elements, which makes backpatching them
1347 Record.push_back(AST_BLOCK_HASH);
1348 Stream.EmitRecordWithBlob(ASTBlockHashAbbrev, Record, Blob);
1350 Record.clear();
1358 Record.push_back(SIGNATURE);
1359 Stream.EmitRecordWithBlob(SignatureAbbrev, Record, Blob);
1361 Record.clear();
1370 #define DIAGOPT(Name, Bits, Default) Record.push_back(DiagOpts.Name);
1372 Record.push_back(static_cast<unsigned>(DiagOpts.get##Name()));
1374 Record.push_back(DiagOpts.Warnings.size());
1376 AddString(DiagOpts.Warnings[I], Record);
1377 Record.push_back(DiagOpts.Remarks.size());
1379 AddString(DiagOpts.Remarks[I], Record);
1382 Stream.EmitRecord(DIAGNOSTIC_OPTIONS, Record);
1383 Record.clear();
1389 Record.push_back(HSOpts.UserEntries.size());
1392 AddString(Entry.Path, Record);
1393 Record.push_back(static_cast<unsigned>(Entry.Group));
1394 Record.push_back(Entry.IsFramework);
1395 Record.push_back(Entry.IgnoreSysRoot);
1399 Record.push_back(HSOpts.SystemHeaderPrefixes.size());
1401 AddString(HSOpts.SystemHeaderPrefixes[I].Prefix, Record);
1402 Record.push_back(HSOpts.SystemHeaderPrefixes[I].IsSystemHeader);
1406 Record.push_back(HSOpts.VFSOverlayFiles.size());
1408 AddString(VFSOverlayFile, Record);
1410 Stream.EmitRecord(HEADER_SEARCH_PATHS, Record);
1424 RecordData::value_type Record[] = {HEADER_SEARCH_ENTRY_USAGE,
1426 Stream.EmitRecordWithBlob(HSUsageAbbrevCode, Record, bytes(HSEntryUsage));
1437 RecordData::value_type Record[] = {VFS_USAGE, VFSUsage.size()};
1438 Stream.EmitRecordWithBlob(VFSUsageAbbrevCode, Record, bytes(VFSUsage));
1454 RecordData Record;
1473 RecordData::value_type Record[] = {METADATA,
1482 Stream.EmitRecordWithBlob(MetadataAbbrevCode, Record,
1492 RecordData::value_type Record[] = {MODULE_NAME};
1493 Stream.EmitRecordWithBlob(AbbrevCode, Record, WritingModule->Name);
1521 RecordData::value_type Record[] = {MODULE_DIRECTORY};
1522 Stream.EmitRecordWithBlob(AbbrevCode, Record, BaseDir);
1534 Record.clear();
1541 Record);
1546 Record.push_back(AdditionalModMaps->size());
1553 AddPath(F.getName(), Record);
1555 Record.push_back(0);
1558 Stream.EmitRecord(MODULE_MAP_FILE, Record);
1582 Record.clear();
1585 Record.push_back(IMPORT);
1586 Record.push_back((unsigned)M.Kind); // FIXME: Stable encoding
1587 AddSourceLocation(M.ImportLoc, Record);
1588 AddStringBlob(M.ModuleName, Record, Blob);
1589 Record.push_back(M.StandardCXXModule);
1594 Record.push_back(0);
1595 Record.push_back(0);
1596 Record.push_back(0);
1600 Record.push_back(M.Signature ? 0 : M.File.getSize());
1601 Record.push_back(M.Signature ? 0 : getTimestampForOutput(M.File));
1605 AddPathBlob(M.FileName, Record, Blob);
1608 Stream.EmitRecordWithBlob(AbbrevCode, Record, Blob);
1616 Record.clear();
1619 Record.push_back(LangOpts.Name);
1621 Record.push_back(static_cast<unsigned>(LangOpts.get##Name()));
1624 Record.push_back(LangOpts.Sanitize.has(SanitizerKind::ID));
1627 Record.push_back(LangOpts.ModuleFeatures.size());
1629 AddString(Feature, Record);
1631 Record.push_back((unsigned) LangOpts.ObjCRuntime.getKind());
1632 AddVersionTuple(LangOpts.ObjCRuntime.getVersion(), Record);
1634 AddString(LangOpts.CurrentModule, Record);
1637 Record.push_back(LangOpts.CommentOpts.BlockCommandNames.size());
1639 AddString(I, Record);
1641 Record.push_back(LangOpts.CommentOpts.ParseAllComments);
1644 Record.push_back(LangOpts.OMPTargetTriples.size());
1646 AddString(T.getTriple(), Record);
1648 AddString(LangOpts.OMPHostIRFile, Record);
1650 Stream.EmitRecord(LANGUAGE_OPTIONS, Record);
1653 Record.clear();
1656 AddString(TargetOpts.Triple, Record);
1657 AddString(TargetOpts.CPU, Record);
1658 AddString(TargetOpts.TuneCPU, Record);
1659 AddString(TargetOpts.ABI, Record);
1660 Record.push_back(TargetOpts.FeaturesAsWritten.size());
1662 AddString(TargetOpts.FeaturesAsWritten[I], Record);
1664 Record.push_back(TargetOpts.Features.size());
1666 AddString(TargetOpts.Features[I], Record);
1668 Stream.EmitRecord(TARGET_OPTIONS, Record);
1671 Record.clear();
1673 AddString(FSOpts.WorkingDir, Record);
1674 Stream.EmitRecord(FILE_SYSTEM_OPTIONS, Record);
1677 Record.clear();
1681 AddString(HSOpts.Sysroot, Record);
1682 AddString(HSOpts.ResourceDir, Record);
1683 AddString(HSOpts.ModuleCachePath, Record);
1684 AddString(HSOpts.ModuleUserBuildPath, Record);
1685 Record.push_back(HSOpts.DisableModuleHash);
1686 Record.push_back(HSOpts.ImplicitModuleMaps);
1687 Record.push_back(HSOpts.ModuleMapFileHomeIsCwd);
1688 Record.push_back(HSOpts.EnablePrebuiltImplicitModules);
1689 Record.push_back(HSOpts.UseBuiltinIncludes);
1690 Record.push_back(HSOpts.UseStandardSystemIncludes);
1691 Record.push_back(HSOpts.UseStandardCXXIncludes);
1692 Record.push_back(HSOpts.UseLibcxx);
1694 AddString(PP.getHeaderSearchInfo().getModuleCachePath(), Record);
1695 Stream.EmitRecord(HEADER_SEARCH_OPTIONS, Record);
1698 Record.clear();
1706 Record.push_back(WriteMacros);
1709 Record.push_back(PPOpts.Macros.size());
1711 AddString(PPOpts.Macros[I].first, Record);
1712 Record.push_back(PPOpts.Macros[I].second);
1717 Record.push_back(PPOpts.Includes.size());
1719 AddString(PPOpts.Includes[I], Record);
1722 Record.push_back(PPOpts.MacroIncludes.size());
1724 AddString(PPOpts.MacroIncludes[I], Record);
1726 Record.push_back(PPOpts.UsePredefines);
1727 // Detailed record is important since it is used for the module cache hash.
1728 Record.push_back(PPOpts.DetailedRecord);
1729 AddString(PPOpts.ImplicitPCHInclude, Record);
1730 Record.push_back(static_cast<unsigned>(PPOpts.ObjCXXARCStandardLibrary));
1731 Stream.EmitRecord(PREPROCESSOR_OPTIONS, Record);
1745 Record.clear();
1746 Record.push_back(ORIGINAL_FILE);
1747 AddFileID(SourceMgr.getMainFileID(), Record);
1748 EmitRecordWithPath(FileAbbrevCode, Record, MainFile->getName());
1751 Record.clear();
1752 AddFileID(SourceMgr.getMainFileID(), Record);
1753 Stream.EmitRecord(ORIGINAL_FILE_ID, Record);
1878 // Record this entry's offset.
1898 RecordData::value_type Record[] = {
1909 Stream.EmitRecordWithBlob(IFAbbrevCode, Record,
1915 RecordData::value_type Record[] = {INPUT_FILE_HASH, Entry.ContentHash[0],
1917 Stream.EmitRecordWithAbbrev(IFHAbbrevCode, Record);
1933 RecordData::value_type Record[] = {INPUT_FILE_OFFSETS,
1935 Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, bytes(InputFileOffsets));
2252 RecordData::value_type Record[] = {HEADER_SEARCH_TABLE, BucketOffset,
2254 Stream.EmitRecordWithBlob(TableAbbrev, Record, TableData);
2272 RecordDataType Record[] = {SM_SLOC_BUFFER_BLOB_COMPRESSED, Blob.size() - 1};
2273 Stream.EmitRecordWithBlob(SLocBufferBlobCompressedAbbrv, Record,
2280 RecordDataType Record[] = {SM_SLOC_BUFFER_BLOB_COMPRESSED, Blob.size() - 1};
2281 Stream.EmitRecordWithBlob(SLocBufferBlobCompressedAbbrv, Record,
2286 RecordDataType Record[] = {SM_SLOC_BUFFER_BLOB};
2287 Stream.EmitRecordWithBlob(SLocBufferBlobAbbrv, Record, Blob);
2299 RecordData Record;
2325 // Record the offset of this source-location entry.
2329 // Figure out which record code to use.
2339 Record.clear();
2340 Record.push_back(Code);
2350 Record.push_back(getAdjustedOffset(SLoc->getOffset()) - 2);
2351 AddSourceLocation(getAffectingIncludeLoc(SourceMgr, File), Record);
2352 Record.push_back(File.getFileCharacteristic()); // FIXME: stable encoding
2353 Record.push_back(File.hasLineDirectives());
2362 Record.push_back(InputFileIDs[*Content->OrigEntry]);
2364 Record.push_back(getAdjustedNumCreatedFIDs(FID));
2368 Record.push_back(FDI->second->FirstDeclIndex);
2369 Record.push_back(FDI->second->DeclIDs.size());
2371 Record.push_back(0);
2372 Record.push_back(0);
2375 Stream.EmitRecordWithAbbrev(SLocFileAbbrv, Record);
2389 Stream.EmitRecordWithBlob(SLocBufferAbbrv, Record,
2410 Record.push_back(getAdjustedOffset(SLoc->getOffset()) - 2);
2412 AddSourceLocation(Expansion.getSpellingLoc(), Record, Seq);
2413 AddSourceLocation(Expansion.getExpansionLocStart(), Record, Seq);
2417 Record, Seq);
2418 Record.push_back(Expansion.isExpansionTokenRange());
2424 Record.push_back(getAdjustedOffset(NextOffset - SLoc->getOffset()) - 1);
2425 Stream.EmitRecordWithAbbrev(SLocExpansionAbbrv, Record);
2446 RecordData::value_type Record[] = {
2450 Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record,
2459 Record.clear();
2470 AddPath(LineTable.getFilename(LE.FilenameID), Record);
2473 Record.push_back(0);
2481 AddFileID(L.first, Record);
2484 Record.push_back(L.second.size());
2486 Record.push_back(LE.FileOffset);
2487 Record.push_back(LE.LineNo);
2488 Record.push_back(FilenameMap[LE.FilenameID]);
2489 Record.push_back((unsigned)LE.FileKind);
2490 Record.push_back(LE.IncludeOffset);
2494 Stream.EmitRecord(SOURCE_MANAGER_LINE_TABLE, Record);
2528 RecordData Record;
2533 RecordData::value_type Record[] = {PP.getCounterValue()};
2534 Stream.EmitRecord(PP_COUNTER_VALUE, Record);
2543 AddSourceLocation(AssumeNonNullLoc, Record);
2544 Stream.EmitRecord(PP_ASSUME_NONNULL_LOC, Record);
2545 Record.clear();
2552 Record.push_back(true);
2553 AddSourceLocation(SkipInfo->HashTokenLoc, Record);
2554 AddSourceLocation(SkipInfo->IfTokenLoc, Record);
2555 Record.push_back(SkipInfo->FoundNonSkipPortion);
2556 Record.push_back(SkipInfo->FoundElse);
2557 AddSourceLocation(SkipInfo->ElseLoc, Record);
2559 Record.push_back(false);
2562 AddSourceLocation(Cond.IfLoc, Record);
2563 Record.push_back(Cond.WasSkipping);
2564 Record.push_back(Cond.FoundNonSkip);
2565 Record.push_back(Cond.FoundElse);
2567 Stream.EmitRecord(PP_CONDITIONAL_STACK, Record);
2568 Record.clear();
2573 AddSourceLocation(S, Record);
2574 Stream.EmitRecord(PP_UNSAFE_BUFFER_USAGE, Record);
2575 Record.clear();
2626 AddSourceLocation(MD->getLocation(), Record);
2627 Record.push_back(MD->getKind());
2629 Record.push_back(getMacroRef(DefMD->getInfo(), Name));
2631 Record.push_back(VisMD->isPublic());
2645 AddSourceLocation(MD->getLocation(), Record);
2646 Record.push_back(MD->getKind());
2648 Record.push_back(getMacroRef(DefMD->getInfo(), Name));
2650 Record.push_back(VisMD->isPublic());
2661 // Emit a record indicating this submodule exports this macro.
2678 if (Record.empty() && !EmittedModuleMacros)
2682 Stream.EmitRecord(PP_MACRO_DIRECTIVE_HISTORY, Record);
2683 Record.clear();
2704 // Record the local offset of this macro.
2713 AddIdentifierRef(Name, Record);
2714 AddSourceLocation(MI->getDefinitionLoc(), Record);
2715 AddSourceLocation(MI->getDefinitionEndLoc(), Record);
2716 Record.push_back(MI->isUsed());
2717 Record.push_back(MI->isUsedForHeaderGuard());
2718 Record.push_back(MI->getNumTokens());
2725 Record.push_back(MI->isC99Varargs());
2726 Record.push_back(MI->isGNUVarargs());
2727 Record.push_back(MI->hasCommaPasting());
2728 Record.push_back(MI->getNumParams());
2730 AddIdentifierRef(Param, Record);
2733 // If we have a detailed preprocessing record, record the macro definition
2736 Record.push_back(MacroDefinitions[PPRec->findMacroDefinition(MI)]);
2738 Stream.EmitRecord(Code, Record);
2739 Record.clear();
2747 AddToken(Tok, Record);
2748 Stream.EmitRecord(PP_TOKEN, Record);
2749 Record.clear();
2768 RecordData::value_type Record[] = {MACRO_OFFSET, MacroOffsets.size(),
2771 Stream.EmitRecordWithBlob(MacroOffsetAbbrev, Record, bytes(MacroOffsets));
2785 // If the preprocessor has a preprocessing record, emit it.
2806 RecordData Record;
2811 Record.clear();
2821 // Record this macro definition's ID.
2824 AddIdentifierRef(MD->getName(), Record);
2825 Stream.EmitRecord(PPD_MACRO_DEFINITION, Record);
2830 Record.push_back(ME->isBuiltinMacro());
2832 AddIdentifierRef(ME->getName(), Record);
2834 Record.push_back(MacroDefinitions[ME->getDefinition()]);
2835 Stream.EmitRecord(PPD_MACRO_EXPANSION, Record);
2840 Record.push_back(PPD_INCLUSION_DIRECTIVE);
2841 Record.push_back(ID->getFileName().size());
2842 Record.push_back(ID->wasInQuotes());
2843 Record.push_back(static_cast<unsigned>(ID->getKind()));
2844 Record.push_back(ID->importedModule());
2851 Stream.EmitRecordWithBlob(InclusionAbbrev, Record, Buffer);
2859 // Write the offsets table for the preprocessing record.
2872 RecordData::value_type Record[] = {PPD_ENTITIES_OFFSETS,
2875 Stream.EmitRecordWithBlob(PPEOffsetAbbrev, Record,
2879 // Write the skipped region table for the preprocessing record.
2895 Record.clear();
2896 Record.push_back(PPD_SKIPPED_RANGES);
2897 Stream.EmitRecordWithBlob(PPESkippedRangeAbbrev, Record,
3035 RecordData::value_type Record[] = {
3038 Stream.EmitRecord(SUBMODULE_METADATA, Record);
3065 RecordData::value_type Record[] = {SUBMODULE_DEFINITION,
3081 Stream.EmitRecordWithBlob(DefinitionAbbrev, Record, Mod->Name);
3086 RecordData::value_type Record[] = {SUBMODULE_REQUIRES, R.RequiredState};
3087 Stream.EmitRecordWithBlob(RequiresAbbrev, Record, R.FeatureName);
3093 RecordData::value_type Record[] = {SUBMODULE_UMBRELLA_HEADER};
3094 Stream.EmitRecordWithBlob(UmbrellaAbbrev, Record,
3098 RecordData::value_type Record[] = {SUBMODULE_UMBRELLA_DIR};
3099 Stream.EmitRecordWithBlob(UmbrellaDirAbbrev, Record,
3117 RecordData::value_type Record[] = {HL.RecordKind};
3119 Stream.EmitRecordWithBlob(HL.Abbrev, Record, H.NameAsWritten);
3124 RecordData::value_type Record[] = {SUBMODULE_TOPHEADER};
3128 Stream.EmitRecordWithBlob(TopHeaderAbbrev, Record, HeaderName);
3134 RecordData Record;
3136 Record.push_back(getSubmoduleID(I));
3137 Stream.EmitRecord(SUBMODULE_IMPORTS, Record);
3142 RecordData Record;
3144 Record.push_back(getSubmoduleID(I));
3145 Stream.EmitRecord(SUBMODULE_AFFECTING_MODULES, Record);
3150 RecordData Record;
3154 Record.push_back(getSubmoduleID(E.getPointer()));
3155 Record.push_back(E.getInt());
3157 Stream.EmitRecord(SUBMODULE_EXPORTS, Record);
3168 RecordData::value_type Record[] = {SUBMODULE_LINK_LIBRARY,
3170 Stream.EmitRecordWithBlob(LinkLibraryAbbrev, Record, LL.Library);
3177 RecordData::value_type Record[] = {SUBMODULE_CONFLICT,
3179 Stream.EmitRecordWithBlob(ConflictAbbrev, Record, C.Message);
3184 RecordData::value_type Record[] = {SUBMODULE_CONFIG_MACRO};
3185 Stream.EmitRecordWithBlob(ConfigMacroAbbrev, Record, CM);
3201 RecordData::value_type Record[] = {SUBMODULE_EXPORT_AS};
3202 Stream.EmitRecordWithBlob(ExportAsAbbrev, Record, Mod->ExportAsModule);
3223 RecordData Record;
3237 Record.push_back(Flags);
3252 Record.push_back(DiagStateID);
3259 auto SizeIdx = Record.size();
3260 Record.emplace_back();
3277 Record.push_back(I.first);
3278 Record.push_back(I.second.serialize());
3281 Record[SizeIdx] = (Record.size() - SizeIdx) / 2;
3288 auto NumLocationsIdx = Record.size();
3289 Record.emplace_back();
3299 AddFileID(FileIDAndFile.first, Record);
3301 Record.push_back(FileIDAndFile.second.StateTransitions.size());
3303 Record.push_back(getAdjustedOffset(StatePoint.Offset));
3309 Record[NumLocationsIdx] = NumLocations;
3317 AddSourceLocation(Diag.DiagStatesByLoc.CurDiagStateLoc, Record);
3320 Stream.EmitRecord(DIAG_PRAGMA_MAPPINGS, Record);
3341 // Record the offset for this type.
3402 RecordData::value_type Record[] = {DECL_CONTEXT_LEXICAL};
3403 Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record,
3418 RecordData::value_type Record[] = {TYPE_OFFSET, TypeOffsets.size()};
3419 Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, bytes(TypeOffsets));
3429 RecordData::value_type Record[] = {DECL_OFFSET, DeclOffsets.size()};
3430 Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, bytes(DeclOffsets));
3458 RecordData::value_type Record[] = {FILE_SORTED_DECLS,
3460 Stream.EmitRecordWithBlob(AbbrevCode, Record, bytes(FileGroupedDeclIDs));
3475 RecordData Record;
3479 Record.clear();
3480 AddSourceRange(I->getSourceRange(), Record);
3481 Record.push_back(I->getKind());
3482 Record.push_back(I->isTrailingComment());
3483 Record.push_back(I->isAlmostTrailingComment());
3484 Stream.EmitRecord(COMMENTS_RAW_COMMENT, Record);
3694 RecordData::value_type Record[] = {METHOD_POOL, BucketOffset,
3696 Stream.EmitRecordWithBlob(MethodPoolAbbrev, Record, MethodPool);
3709 RecordData::value_type Record[] = {
3712 Stream.EmitRecordWithBlob(SelectorOffsetAbbrev, Record,
3725 RecordData Record;
3726 ASTRecordWriter Writer(SemaRef.Context, *this, Record);
3856 // Record the location of the identifier data. This is used when generating
3991 RecordData::value_type Record[] = {IDENTIFIER_TABLE, BucketOffset};
3992 Stream.EmitRecordWithBlob(IDTableAbbrev, Record, IdentifierTable);
4007 RecordData::value_type Record[] = {IDENTIFIER_OFFSET,
4009 Stream.EmitRecordWithBlob(IdentifierOffsetAbbrev, Record,
4488 RecordData::value_type Record[] = {static_cast<RecordData::value_type>(
4492 Record, LookupTable);
4505 /// need to record the result in the current being written module. Return false
4775 // lookup results as an update record for it rather than including them
4785 // Note that we need to emit an update record for the primary context.
4865 RecordData::value_type Record[] = {DECL_CONTEXT_VISIBLE};
4866 Stream.EmitRecordWithBlob(DeclContextVisibleLookupAbbrev, Record,
4912 // update record; those are the only ones that will be checked on reload.
4917 RecordData::value_type Record[] = {UPDATE_VISIBLE,
4919 Stream.EmitRecordWithBlob(UpdateVisibleAbbrev, Record, LookupTable);
4939 RecordData::value_type Record[] = {Opts.getAsOpaqueInt()};
4940 Stream.EmitRecord(FP_PRAGMA_OPTIONS, Record);
4949 RecordData Record;
4951 AddString(I.getKey(), Record);
4953 Record.push_back(V.Supported ? 1 : 0);
4954 Record.push_back(V.Enabled ? 1 : 0);
4955 Record.push_back(V.WithPragma ? 1 : 0);
4956 Record.push_back(V.Avail);
4957 Record.push_back(V.Core);
4958 Record.push_back(V.Opt);
4960 Stream.EmitRecord(OPENCL_EXTENSIONS, Record);
4964 RecordData::value_type Record[] = {SemaRef.CUDA().ForceHostDeviceDepth};
4965 Stream.EmitRecord(CUDA_PRAGMA_FORCE_HOST_DEVICE_DEPTH, Record);
4994 // Record this interface -> category map.
5012 RecordData::value_type Record[] = {OBJC_CATEGORIES_MAP, CategoriesMap.size()};
5013 Stream.EmitRecordWithBlob(AbbrevID, Record,
5027 RecordData Record;
5031 AddDeclRef(FD, Record);
5032 AddDeclRef(LPT.D, Record);
5033 Record.push_back(LPT.FPO.getAsOpaqueInt());
5034 Record.push_back(LPT.Toks.size());
5037 AddToken(Tok, Record);
5040 Stream.EmitRecord(LATE_PARSED_TEMPLATE, Record);
5045 RecordData Record;
5047 AddSourceLocation(PragmaLoc, Record);
5048 Stream.EmitRecord(OPTIMIZE_PRAGMA_OPTIONS, Record);
5053 RecordData Record;
5054 Record.push_back(SemaRef.MSStructPragmaOn ? PMSST_ON : PMSST_OFF);
5055 Stream.EmitRecord(MSSTRUCT_PRAGMA_OPTIONS, Record);
5061 RecordData Record;
5062 Record.push_back(SemaRef.MSPointerToMemberRepresentationMethod);
5063 AddSourceLocation(SemaRef.ImplicitMSInheritanceAttrLoc, Record);
5064 Stream.EmitRecord(POINTERS_TO_MEMBERS_PRAGMA_OPTIONS, Record);
5074 RecordData Record;
5075 AddAlignPackInfo(SemaRef.AlignPackStack.CurrentValue, Record);
5076 AddSourceLocation(SemaRef.AlignPackStack.CurrentPragmaLocation, Record);
5077 Record.push_back(SemaRef.AlignPackStack.Stack.size());
5079 AddAlignPackInfo(StackEntry.Value, Record);
5080 AddSourceLocation(StackEntry.PragmaLocation, Record);
5081 AddSourceLocation(StackEntry.PragmaPushLocation, Record);
5082 AddString(StackEntry.StackSlotLabel, Record);
5084 Stream.EmitRecord(ALIGN_PACK_PRAGMA_OPTIONS, Record);
5094 RecordData Record;
5095 Record.push_back(SemaRef.FpPragmaStack.CurrentValue.getAsOpaqueInt());
5096 AddSourceLocation(SemaRef.FpPragmaStack.CurrentPragmaLocation, Record);
5097 Record.push_back(SemaRef.FpPragmaStack.Stack.size());
5099 Record.push_back(StackEntry.Value.getAsOpaqueInt());
5100 AddSourceLocation(StackEntry.PragmaLocation, Record);
5101 AddSourceLocation(StackEntry.PragmaPushLocation, Record);
5102 AddString(StackEntry.StackSlotLabel, Record);
5104 Stream.EmitRecord(FLOAT_CONTROL_PRAGMA_OPTIONS, Record);
5111 RecordData Record;
5113 AddDeclRef(D, Record);
5115 Stream.EmitRecord(DECLS_WITH_EFFECTS_TO_VERIFY, Record);
5123 // Emit the metadata record abbreviation.
5133 // Emit the metadata record.
5134 RecordData Record;
5136 Record.push_back(EXTENSION_METADATA);
5137 Record.push_back(Metadata.MajorVersion);
5138 Record.push_back(Metadata.MinorVersion);
5139 Record.push_back(Metadata.BlockName.size());
5140 Record.push_back(Metadata.UserInfo.size());
5144 Stream.EmitRecordWithBlob(Abbrev, Record, Buffer);
5158 auto &Record = *this;
5164 return Record.push_back(0);
5166 Record.push_back(A->getKind() + 1); // FIXME: stable encoding, target attrs
5168 Record.AddIdentifierRef(A->getAttrName());
5169 Record.AddIdentifierRef(A->getScopeName());
5170 Record.AddSourceRange(A->getRange());
5171 Record.AddSourceLocation(A->getScopeLoc());
5172 Record.push_back(A->getParsedKind());
5173 Record.push_back(A->getSyntax());
5174 Record.push_back(A->getAttributeSpellingListIndexRaw());
5175 Record.push_back(A->isRegularKeywordAttribute());
5180 /// Emit the list of attributes to the specified record.
5187 void ASTWriter::AddToken(const Token &Tok, RecordDataImpl &Record) {
5188 AddSourceLocation(Tok.getLocation(), Record);
5190 Record.push_back(Tok.getKind());
5192 Record.push_back(Tok.getFlags());
5195 AddSourceLocation(Tok.getAnnotationEndLoc(), Record);
5199 AddToken(Info->PragmaName, Record);
5200 AddToken(Info->Option, Record);
5201 Record.push_back(Info->Toks.size());
5203 AddToken(T, Record);
5209 Record.push_back(static_cast<unsigned>(Info->Action));
5210 AddString(Info->SlotLabel, Record);
5211 AddToken(Info->Alignment, Record);
5226 Record.push_back(Tok.getLength());
5229 AddIdentifierRef(Tok.getIdentifierInfo(), Record);
5233 void ASTWriter::AddString(StringRef Str, RecordDataImpl &Record) {
5234 Record.push_back(Str.size());
5235 Record.insert(Record.end(), Str.begin(), Str.end());
5238 void ASTWriter::AddStringBlob(StringRef Str, RecordDataImpl &Record,
5240 Record.push_back(Str.size());
5266 void ASTWriter::AddPath(StringRef Path, RecordDataImpl &Record) {
5269 AddString(FilePath, Record);
5272 void ASTWriter::AddPathBlob(StringRef Path, RecordDataImpl &Record,
5276 AddStringBlob(FilePath, Record, Blob);
5279 void ASTWriter::EmitRecordWithPath(unsigned Abbrev, RecordDataRef Record,
5283 Stream.EmitRecordWithBlob(Abbrev, Record, FilePath);
5287 RecordDataImpl &Record) {
5288 Record.push_back(Version.getMajor());
5290 Record.push_back(*Minor + 1);
5292 Record.push_back(0);
5294 Record.push_back(*Subminor + 1);
5296 Record.push_back(0);
5321 // Don't record offsets for selectors that are also available in a different
5409 ASTWriter::RecordData &Record) {
5412 Writer.AddEmittedDeclRef(*I, Record);
5593 // TentativeDefinitions order. Generally, this record will be empty for
5693 // Write the record containing external, unnamed definitions.
5700 // Write the record containing tentative definitions.
5707 // Write the record containing unused file scoped decls.
5715 // Write the record containing ext_vector type names.
5721 // Write the record containing VTable uses information.
5736 // Write the record containing potentially unused local typedefs.
5744 // Write the record containing pending implicit instantiations.
5756 // Write the record containing declaration references of Sema.
5773 // Write the record containing decls to be checked for deferred diags.
5782 // Write the record containing CUDA-specific declaration references.
5917 // Form the record of special types.
5946 RecordData Record = {VERSION_MAJOR};
5947 Stream.EmitRecord(METADATA_OLD_FORMAT, Record);
6022 RecordData::value_type Record[] = {MODULE_OFFSET_MAP};
6023 Stream.EmitRecordWithBlob(ModuleOffsetMapAbbrev, Record,
6057 // Write the record containing weak undeclared identifiers.
6117 RecordData::value_type Record[] = {NumStatements,
6123 Stream.EmitRecord(STATISTICS, Record);
6165 ASTWriter::UpdateRecord &Record = DeclUpdates[TU];
6166 if (Record.empty())
6167 Record.push_back(DeclUpdate(UPD_CXX_ADDED_ANONYMOUS_NAMESPACE, NS));
6292 RecordData::value_type Record[] = {TU_UPDATE_LEXICAL};
6293 Stream.EmitRecordWithBlob(TuUpdateLexicalAbbrev, Record,
6346 RecordData::value_type Record[] = {
6349 Stream.EmitRecordWithBlob(UpdateSpecializationAbbrev, Record, LookupTable);
6367 ASTRecordWriter Record(Context, *this, RecordData);
6378 Record.push_back(Kind);
6384 Record.AddDeclRef(Update.getDecl());
6392 Record.AddSourceLocation(Update.getLoc());
6396 Record.writeStmtRef(
6401 Record.AddStmt(
6408 Record.push_back(RD->isParamDestroyedInCallee());
6409 Record.push_back(llvm::to_underlying(RD->getArgPassingRestrictions()));
6410 Record.AddCXXDefinitionData(RD);
6411 Record.AddOffset(WriteDeclContextLexicalBlock(Context, RD));
6417 Record.push_back(MSInfo->getTemplateSpecializationKind());
6418 Record.AddSourceLocation(MSInfo->getPointOfInstantiation());
6421 Record.push_back(Spec->getTemplateSpecializationKind());
6422 Record.AddSourceLocation(Spec->getPointOfInstantiation());
6425 // specialization. If so, record which one.
6429 Record.push_back(true);
6430 Record.AddDeclRef(PartialSpec);
6431 Record.AddTemplateArgumentList(
6434 Record.push_back(false);
6437 Record.push_back(llvm::to_underlying(RD->getTagKind()));
6438 Record.AddSourceLocation(RD->getLocation());
6439 Record.AddSourceLocation(RD->getBeginLoc());
6440 Record.AddSourceRange(RD->getBraceRange());
6443 Record.push_back(D->hasAttrs());
6445 Record.AddAttributes(D->getAttrs());
6452 Record.AddDeclRef(Update.getDecl());
6453 Record.AddStmt(cast<CXXDestructorDecl>(D)->getOperatorDeleteThisArg());
6459 Record.writeExceptionSpecInfo(prototype->getExceptionSpecInfo());
6464 Record.push_back(GetOrCreateTypeID(Context, Update.getType()));
6472 Record.push_back(Update.getNumber());
6476 Record.AddSourceRange(
6482 Record.push_back(A->getAllocatorType());
6483 Record.AddStmt(A->getAllocator());
6484 Record.AddStmt(A->getAlignment());
6485 Record.AddSourceRange(A->getRange());
6490 Record.push_back(D->getAttr<OMPDeclareTargetDeclAttr>()->getMapType());
6491 Record.AddSourceRange(
6496 Record.push_back(getSubmoduleID(Update.getModule()));
6500 Record.AddAttributes(llvm::ArrayRef(Update.getAttr()));
6505 // Add a trailing update record, if any. These must go last because we
6510 Record.push_back(UPD_CXX_ADDED_FUNCTION_DEFINITION);
6511 Record.push_back(Def->isInlined());
6512 Record.AddSourceLocation(Def->getInnerLocStart());
6513 Record.AddFunctionDefinition(Def);
6516 Record.push_back(UPD_CXX_ADDED_VAR_DEFINITION);
6517 Record.push_back(VD->isInline());
6518 Record.push_back(VD->isInlineSpecified());
6519 Record.AddVarDeclInit(VD);
6524 OffsetsRecord.push_back(Record.Emit(DECL_UPDATES));
6529 RecordDataImpl &Record) {
6531 Record.push_back(Raw);
6596 void ASTWriter::AddFileID(FileID FID, RecordDataImpl &Record) {
6597 Record.push_back(getAdjustedFileID(FID).getOpaqueValue());
6623 void ASTWriter::AddSourceLocation(SourceLocation Loc, RecordDataImpl &Record,
6626 Record.push_back(getRawSourceLocationEncoding(Loc, Seq));
6629 void ASTWriter::AddSourceRange(SourceRange Range, RecordDataImpl &Record,
6631 AddSourceLocation(Range.getBegin(), Record, Seq);
6632 AddSourceLocation(Range.getEnd(), Record, Seq);
6639 void ASTWriter::AddIdentifierRef(const IdentifierInfo *II, RecordDataImpl &Record) {
6640 Record.push_back(getIdentifierRef(II));
6682 Record->push_back(Writer->getSelectorRef(SelRef));
6743 Record->push_back(InfoHasSameExpr);
6768 RecordDataImpl &Record) {
6769 Record.push_back(GetOrCreateTypeID(Context, T));
6819 void ASTWriter::AddEmittedDeclRef(const Decl *D, RecordDataImpl &Record) {
6823 AddDeclRef(D, Record);
6826 void ASTWriter::AddDeclRef(const Decl *D, RecordDataImpl &Record) {
6827 Record.push_back(GetDeclRef(D).getRawValue());
6995 Record->push_back(Info.NumTemplParamLists);
7012 Record->push_back(NestedNames.size());
7017 Record->push_back(Kind);
7036 Record->push_back(Kind == NestedNameSpecifier::TypeSpecWithTemplate);
7061 Record->push_back(TemplateParams->size());
7065 Record->push_back(true);
7068 Record->push_back(false);
7076 Record->push_back(TemplateArgs->size());
7086 Record->push_back(ASTTemplArgList->NumTemplateArgs);
7093 Record->push_back(Set.size());
7097 Record->push_back(I.getAccess());
7103 Record->push_back(Base.isVirtual());
7104 Record->push_back(Base.isBaseOfClass());
7105 Record->push_back(Base.getAccessSpecifierAsWritten());
7106 Record->push_back(Base.getInheritConstructors());
7115 ASTWriter::RecordData Record;
7116 ASTRecordWriter Writer(Context, W, Record);
7133 ASTWriter::RecordData Record;
7134 ASTRecordWriter Writer(Context, W, Record);
7174 Record->push_back(Data.IsLambda);
7180 Record->push_back(DefinitionBits); \
7188 Record->push_back(DefinitionBits);
7192 Record->push_back(D->getODRHash());
7199 Record->push_back(ModulesCodegen);
7206 Record->push_back(Data.ComputedVisibleConversions);
7212 Record->push_back(Data.NumBases);
7217 Record->push_back(Data.NumVBases);
7231 Record->push_back(LambdaBits);
7233 Record->push_back(Lambda.NumExplicitCaptures);
7234 Record->push_back(Lambda.ManglingNumber);
7235 Record->push_back(D->getDeviceLambdaManglingNumber());
7246 Record->push_back(CaptureBits);
7476 // chain, add an update record for it.
7595 // we can skip writing the update record. We make sure that isUsed() triggers
7641 const RecordDecl *Record) {
7644 if (!Record->isFromASTFile())
7646 DeclUpdates[Record].push_back(DeclUpdate(UPD_ADDED_ATTR_TO_RECORD, Attr));
7692 ASTRecordWriter &Record;
7695 OMPClauseWriter(ASTRecordWriter &Record) : Record(Record) {}
7711 Record.push_back(unsigned(C->getClauseKind()));
7713 Record.AddSourceLocation(C->getBeginLoc());
7714 Record.AddSourceLocation(C->getEndLoc());
7718 Record.push_back(uint64_t(C->getCaptureRegion()));
7719 Record.AddStmt(C->getPreInitStmt());
7724 Record.AddStmt(C->getPostUpdateExpr());
7729 Record.push_back(uint64_t(C->getNameModifier()));
7730 Record.AddSourceLocation(C->getNameModifierLoc());
7731 Record.AddSourceLocation(C->getColonLoc());
7732 Record.AddStmt(C->getCondition());
7733 Record.AddSourceLocation(C->getLParenLoc());
7738 Record.AddStmt(C->getCondition());
7739 Record.AddSourceLocation(C->getLParenLoc());
7744 Record.AddStmt(C->getNumThreads());
7745 Record.AddSourceLocation(C->getLParenLoc());
7749 Record.AddStmt(C->getSafelen());
7750 Record.AddSourceLocation(C->getLParenLoc());
7754 Record.AddStmt(C->getSimdlen());
7755 Record.AddSourceLocation(C->getLParenLoc());
7759 Record.push_back(C->getNumSizes());
7761 Record.AddStmt(Size);
7762 Record.AddSourceLocation(C->getLParenLoc());
7766 Record.push_back(C->getNumLoops());
7768 Record.AddStmt(Size);
7769 Record.AddSourceLocation(C->getLParenLoc());
7775 Record.AddStmt(C->getFactor());
7776 Record.AddSourceLocation(C->getLParenLoc());
7780 Record.AddStmt(C->getAllocator());
7781 Record.AddSourceLocation(C->getLParenLoc());
7785 Record.AddStmt(C->getNumForLoops());
7786 Record.AddSourceLocation(C->getLParenLoc());
7790 Record.AddStmt(C->getEventHandler());
7791 Record.AddSourceLocation(C->getLParenLoc());
7795 Record.push_back(unsigned(C->getDefaultKind()));
7796 Record.AddSourceLocation(C->getLParenLoc());
7797 Record.AddSourceLocation(C->getDefaultKindKwLoc());
7801 Record.push_back(unsigned(C->getProcBindKind()));
7802 Record.AddSourceLocation(C->getLParenLoc());
7803 Record.AddSourceLocation(C->getProcBindKindKwLoc());
7808 Record.push_back(C->getScheduleKind());
7809 Record.push_back(C->getFirstScheduleModifier());
7810 Record.push_back(C->getSecondScheduleModifier());
7811 Record.AddStmt(C->getChunkSize());
7812 Record.AddSourceLocation(C->getLParenLoc());
7813 Record.AddSourceLocation(C->getFirstScheduleModifierLoc());
7814 Record.AddSourceLocation(C->getSecondScheduleModifierLoc());
7815 Record.AddSourceLocation(C->getScheduleKindLoc());
7816 Record.AddSourceLocation(C->getCommaLoc());
7820 Record.push_back(C->getLoopNumIterations().size());
7821 Record.AddStmt(C->getNumForLoops());
7823 Record.AddStmt(NumIter);
7825 Record.AddStmt(C->getLoopCounter(I));
7826 Record.AddSourceLocation(C->getLParenLoc());
7840 Record.push_back(C->isExtended() ? 1 : 0);
7842 Record.AddSourceLocation(C->getLParenLoc());
7843 Record.AddSourceLocation(C->getArgumentLoc());
7844 Record.writeEnum(C->getDependencyKind());
7854 Record.AddSourceLocation(C->getLParenLoc());
7855 Record.AddSourceLocation(C->getFailParameterLoc());
7856 Record.writeEnum(C->getFailParameter());
7864 Record.push_back(static_cast<uint64_t>(C->getDirectiveKinds().size()));
7865 Record.AddSourceLocation(C->getLParenLoc());
7867 Record.writeEnum(K);
7872 Record.AddStmt(C->getExpr());
7873 Record.AddSourceLocation(C->getLParenLoc());
7877 Record.push_back(static_cast<uint64_t>(C->getDirectiveKinds().size()));
7878 Record.AddSourceLocation(C->getLParenLoc());
7880 Record.writeEnum(K);
7906 Record.push_back(C->varlist_size());
7908 Record.AddStmt(VE);
7909 Record.writeBool(C->getIsTarget());
7910 Record.writeBool(C->getIsTargetSync());
7911 Record.AddSourceLocation(C->getLParenLoc());
7912 Record.AddSourceLocation(C->getVarLoc());
7916 Record.AddStmt(C->getInteropVar());
7917 Record.AddSourceLocation(C->getLParenLoc());
7918 Record.AddSourceLocation(C->getVarLoc());
7922 Record.AddStmt(C->getInteropVar());
7923 Record.AddSourceLocation(C->getLParenLoc());
7924 Record.AddSourceLocation(C->getVarLoc());
7929 Record.AddStmt(C->getCondition());
7930 Record.AddSourceLocation(C->getLParenLoc());
7935 Record.AddStmt(C->getCondition());
7936 Record.AddSourceLocation(C->getLParenLoc());
7941 Record.AddStmt(C->getThreadID());
7942 Record.AddSourceLocation(C->getLParenLoc());
7946 Record.AddStmt(C->getAlignment());
7947 Record.AddSourceLocation(C->getLParenLoc());
7951 Record.push_back(C->varlist_size());
7952 Record.AddSourceLocation(C->getLParenLoc());
7954 Record.AddStmt(VE);
7957 Record.AddStmt(VE);
7962 Record.push_back(C->varlist_size());
7964 Record.AddSourceLocation(C->getLParenLoc());
7966 Record.AddStmt(VE);
7969 Record.AddStmt(VE);
7972 Record.AddStmt(VE);
7977 Record.push_back(C->varlist_size());
7979 Record.AddSourceLocation(C->getLParenLoc());
7980 Record.writeEnum(C->getKind());
7981 Record.AddSourceLocation(C->getKindLoc());
7982 Record.AddSourceLocation(C->getColonLoc());
7984 Record.AddStmt(VE);
7986 Record.AddStmt(E);
7988 Record.AddStmt(E);
7990 Record.AddStmt(E);
7992 Record.AddStmt(E);
7996 Record.push_back(C->varlist_size());
7997 Record.AddSourceLocation(C->getLParenLoc());
7999 Record.AddStmt(VE);
8003 Record.push_back(C->varlist_size());
8004 Record.writeEnum(C->getModifier());
8006 Record.AddSourceLocation(C->getLParenLoc());
8007 Record.AddSourceLocation(C->getModifierLoc());
8008 Record.AddSourceLocation(C->getColonLoc());
8009 Record.AddNestedNameSpecifierLoc(C->getQualifierLoc());
8010 Record.AddDeclarationNameInfo(C->getNameInfo());
8012 Record.AddStmt(VE);
8014 Record.AddStmt(VE);
8016 Record.AddStmt(E);
8018 Record.AddStmt(E);
8020 Record.AddStmt(E);
8023 Record.AddStmt(E);
8025 Record.AddStmt(E);
8027 Record.AddStmt(E);
8032 Record.push_back(C->varlist_size());
8034 Record.AddSourceLocation(C->getLParenLoc());
8035 Record.AddSourceLocation(C->getColonLoc());
8036 Record.AddNestedNameSpecifierLoc(C->getQualifierLoc());
8037 Record.AddDeclarationNameInfo(C->getNameInfo());
8039 Record.AddStmt(VE);
8041 Record.AddStmt(VE);
8043 Record.AddStmt(E);
8045 Record.AddStmt(E);
8047 Record.AddStmt(E);
8051 Record.push_back(C->varlist_size());
8053 Record.AddSourceLocation(C->getLParenLoc());
8054 Record.AddSourceLocation(C->getColonLoc());
8055 Record.AddNestedNameSpecifierLoc(C->getQualifierLoc());
8056 Record.AddDeclarationNameInfo(C->getNameInfo());
8058 Record.AddStmt(VE);
8060 Record.AddStmt(VE);
8062 Record.AddStmt(E);
8064 Record.AddStmt(E);
8066 Record.AddStmt(E);
8068 Record.AddStmt(E);
8072 Record.push_back(C->varlist_size());
8074 Record.AddSourceLocation(C->getLParenLoc());
8075 Record.AddSourceLocation(C->getColonLoc());
8076 Record.push_back(C->getModifier());
8077 Record.AddSourceLocation(C->getModifierLoc());
8079 Record.AddStmt(VE);
8082 Record.AddStmt(VE);
8085 Record.AddStmt(VE);
8088 Record.AddStmt(VE);
8091 Record.AddStmt(VE);
8093 Record.AddStmt(C->getStep());
8094 Record.AddStmt(C->getCalcStep());
8096 Record.AddStmt(VE);
8100 Record.push_back(C->varlist_size());
8101 Record.AddSourceLocation(C->getLParenLoc());
8102 Record.AddSourceLocation(C->getColonLoc());
8104 Record.AddStmt(VE);
8105 Record.AddStmt(C->getAlignment());
8109 Record.push_back(C->varlist_size());
8110 Record.AddSourceLocation(C->getLParenLoc());
8112 Record.AddStmt(VE);
8114 Record.AddStmt(E);
8116 Record.AddStmt(E);
8118 Record.AddStmt(E);
8122 Record.push_back(C->varlist_size());
8123 Record.AddSourceLocation(C->getLParenLoc());
8125 Record.AddStmt(VE);
8127 Record.AddStmt(E);
8129 Record.AddStmt(E);
8131 Record.AddStmt(E);
8135 Record.push_back(C->varlist_size());
8136 Record.AddSourceLocation(C->getLParenLoc());
8138 Record.AddStmt(VE);
8142 Record.AddStmt(C->getDepobj());
8143 Record.AddSourceLocation(C->getLParenLoc());
8147 Record.push_back(C->varlist_size());
8148 Record.push_back(C->getNumLoops());
8149 Record.AddSourceLocation(C->getLParenLoc());
8150 Record.AddStmt(C->getModifier());
8151 Record.push_back(C->getDependencyKind());
8152 Record.AddSourceLocation(C->getDependencyLoc());
8153 Record.AddSourceLocation(C->getColonLoc());
8154 Record.AddSourceLocation(C->getOmpAllMemoryLoc());
8156 Record.AddStmt(VE);
8158 Record.AddStmt(C->getLoopData(I));
8163 Record.writeEnum(C->getModifier());
8164 Record.AddStmt(C->getDevice());
8165 Record.AddSourceLocation(C->getModifierLoc());
8166 Record.AddSourceLocation(C->getLParenLoc());
8170 Record.push_back(C->varlist_size());
8171 Record.push_back(C->getUniqueDeclarationsNum());
8172 Record.push_back(C->getTotalComponentListNum());
8173 Record.push_back(C->getTotalComponentsNum());
8174 Record.AddSourceLocation(C->getLParenLoc());
8177 Record.push_back(C->getMapTypeModifier(I));
8178 Record.AddSourceLocation(C->getMapTypeModifierLoc(I));
8182 Record.AddNestedNameSpecifierLoc(C->getMapperQualifierLoc());
8183 Record.AddDeclarationNameInfo(C->getMapperIdInfo());
8184 Record.push_back(C->getMapType());
8185 Record.AddSourceLocation(C->getMapLoc());
8186 Record.AddSourceLocation(C->getColonLoc());
8188 Record.AddStmt(E);
8190 Record.AddStmt(E);
8192 Record.AddStmt(C->getIteratorModifier());
8194 Record.AddDeclRef(D);
8196 Record.push_back(N);
8198 Record.push_back(N);
8200 Record.AddStmt(M.getAssociatedExpression());
8201 Record.AddDeclRef(M.getAssociatedDeclaration());
8206 Record.push_back(C->varlist_size());
8207 Record.writeEnum(C->getFirstAllocateModifier());
8208 Record.writeEnum(C->getSecondAllocateModifier());
8209 Record.AddSourceLocation(C->getLParenLoc());
8210 Record.AddSourceLocation(C->getColonLoc());
8211 Record.AddStmt(C->getAllocator());
8212 Record.AddStmt(C->getAlignment());
8214 Record.AddStmt(VE);
8218 Record.push_back(C->varlist_size());
8220 Record.AddSourceLocation(C->getLParenLoc());
8222 Record.AddStmt(VE);
8226 Record.push_back(C->varlist_size());
8228 Record.AddSourceLocation(C->getLParenLoc());
8230 Record.AddStmt(VE);
8235 Record.AddStmt(C->getPriority());
8236 Record.AddSourceLocation(C->getLParenLoc());
8241 Record.writeEnum(C->getModifier());
8242 Record.AddStmt(C->getGrainsize());
8243 Record.AddSourceLocation(C->getModifierLoc());
8244 Record.AddSourceLocation(C->getLParenLoc());
8249 Record.writeEnum(C->getModifier());
8250 Record.AddStmt(C->getNumTasks());
8251 Record.AddSourceLocation(C->getModifierLoc());
8252 Record.AddSourceLocation(C->getLParenLoc());
8256 Record.AddStmt(C->getHint());
8257 Record.AddSourceLocation(C->getLParenLoc());
8262 Record.push_back(C->getDistScheduleKind());
8263 Record.AddStmt(C->getChunkSize());
8264 Record.AddSourceLocation(C->getLParenLoc());
8265 Record.AddSourceLocation(C->getDistScheduleKindLoc());
8266 Record.AddSourceLocation(C->getCommaLoc());
8270 Record.push_back(C->getDefaultmapKind());
8271 Record.push_back(C->getDefaultmapModifier());
8272 Record.AddSourceLocation(C->getLParenLoc());
8273 Record.AddSourceLocation(C->getDefaultmapModifierLoc());
8274 Record.AddSourceLocation(C->getDefaultmapKindLoc());
8278 Record.push_back(C->varlist_size());
8279 Record.push_back(C->getUniqueDeclarationsNum());
8280 Record.push_back(C->getTotalComponentListNum());
8281 Record.push_back(C->getTotalComponentsNum());
8282 Record.AddSourceLocation(C->getLParenLoc());
8284 Record.push_back(C->getMotionModifier(I));
8285 Record.AddSourceLocation(C->getMotionModifierLoc(I));
8287 Record.AddNestedNameSpecifierLoc(C->getMapperQualifierLoc());
8288 Record.AddDeclarationNameInfo(C->getMapperIdInfo());
8289 Record.AddSourceLocation(C->getColonLoc());
8291 Record.AddStmt(E);
8293 Record.AddStmt(E);
8295 Record.AddDeclRef(D);
8297 Record.push_back(N);
8299 Record.push_back(N);
8301 Record.AddStmt(M.getAssociatedExpression());
8302 Record.writeBool(M.isNonContiguous());
8303 Record.AddDeclRef(M.getAssociatedDeclaration());
8308 Record.push_back(C->varlist_size());
8309 Record.push_back(C->getUniqueDeclarationsNum());
8310 Record.push_back(C->getTotalComponentListNum());
8311 Record.push_back(C->getTotalComponentsNum());
8312 Record.AddSourceLocation(C->getLParenLoc());
8314 Record.push_back(C->getMotionModifier(I));
8315 Record.AddSourceLocation(C->getMotionModifierLoc(I));
8317 Record.AddNestedNameSpecifierLoc(C->getMapperQualifierLoc());
8318 Record.AddDeclarationNameInfo(C->getMapperIdInfo());
8319 Record.AddSourceLocation(C->getColonLoc());
8321 Record.AddStmt(E);
8323 Record.AddStmt(E);
8325 Record.AddDeclRef(D);
8327 Record.push_back(N);
8329 Record.push_back(N);
8331 Record.AddStmt(M.getAssociatedExpression());
8332 Record.writeBool(M.isNonContiguous());
8333 Record.AddDeclRef(M.getAssociatedDeclaration());
8338 Record.push_back(C->varlist_size());
8339 Record.push_back(C->getUniqueDeclarationsNum());
8340 Record.push_back(C->getTotalComponentListNum());
8341 Record.push_back(C->getTotalComponentsNum());
8342 Record.AddSourceLocation(C->getLParenLoc());
8344 Record.AddStmt(E);
8346 Record.AddStmt(VE);
8348 Record.AddStmt(VE);
8350 Record.AddDeclRef(D);
8352 Record.push_back(N);
8354 Record.push_back(N);
8356 Record.AddStmt(M.getAssociatedExpression());
8357 Record.AddDeclRef(M.getAssociatedDeclaration());
8362 Record.push_back(C->varlist_size());
8363 Record.push_back(C->getUniqueDeclarationsNum());
8364 Record.push_back(C->getTotalComponentListNum());
8365 Record.push_back(C->getTotalComponentsNum());
8366 Record.AddSourceLocation(C->getLParenLoc());
8368 Record.AddStmt(E);
8370 Record.AddDeclRef(D);
8372 Record.push_back(N);
8374 Record.push_back(N);
8376 Record.AddStmt(M.getAssociatedExpression());
8377 Record.AddDeclRef(M.getAssociatedDeclaration());
8382 Record.push_back(C->varlist_size());
8383 Record.push_back(C->getUniqueDeclarationsNum());
8384 Record.push_back(C->getTotalComponentListNum());
8385 Record.push_back(C->getTotalComponentsNum());
8386 Record.AddSourceLocation(C->getLParenLoc());
8388 Record.AddStmt(E);
8390 Record.AddDeclRef(D);
8392 Record.push_back(N);
8394 Record.push_back(N);
8396 Record.AddStmt(M.getAssociatedExpression());
8397 Record.AddDeclRef(M.getAssociatedDeclaration());
8402 Record.push_back(C->varlist_size());
8403 Record.push_back(C->getUniqueDeclarationsNum());
8404 Record.push_back(C->getTotalComponentListNum());
8405 Record.push_back(C->getTotalComponentsNum());
8406 Record.AddSourceLocation(C->getLParenLoc());
8408 Record.AddStmt(E);
8410 Record.AddDeclRef(D);
8412 Record.push_back(N);
8414 Record.push_back(N);
8416 Record.AddStmt(M.getAssociatedExpression());
8417 Record.AddDeclRef(M.getAssociatedDeclaration());
8434 Record.push_back(C->getAtomicDefaultMemOrderKind());
8435 Record.AddSourceLocation(C->getLParenLoc());
8436 Record.AddSourceLocation(C->getAtomicDefaultMemOrderKindKwLoc());
8440 Record.push_back(C->getAtKind());
8441 Record.AddSourceLocation(C->getLParenLoc());
8442 Record.AddSourceLocation(C->getAtKindKwLoc());
8446 Record.push_back(C->getSeverityKind());
8447 Record.AddSourceLocation(C->getLParenLoc());
8448 Record.AddSourceLocation(C->getSeverityKindKwLoc());
8452 Record.AddStmt(C->getMessageString());
8453 Record.AddSourceLocation(C->getLParenLoc());
8457 Record.push_back(C->varlist_size());
8458 Record.AddSourceLocation(C->getLParenLoc());
8460 Record.AddStmt(VE);
8462 Record.AddStmt(E);
8466 Record.push_back(C->varlist_size());
8467 Record.AddSourceLocation(C->getLParenLoc());
8469 Record.AddStmt(VE);
8473 Record.push_back(C->varlist_size());
8474 Record.AddSourceLocation(C->getLParenLoc());
8476 Record.AddStmt(VE);
8480 Record.writeEnum(C->getKind());
8481 Record.writeEnum(C->getModifier());
8482 Record.AddSourceLocation(C->getLParenLoc());
8483 Record.AddSourceLocation(C->getKindKwLoc());
8484 Record.AddSourceLocation(C->getModifierKwLoc());
8488 Record.push_back(C->getNumberOfAllocators());
8489 Record.AddSourceLocation(C->getLParenLoc());
8492 Record.AddStmt(Data.Allocator);
8493 Record.AddStmt(Data.AllocatorTraits);
8494 Record.AddSourceLocation(Data.LParenLoc);
8495 Record.AddSourceLocation(Data.RParenLoc);
8500 Record.push_back(C->varlist_size());
8501 Record.AddSourceLocation(C->getLParenLoc());
8502 Record.AddStmt(C->getModifier());
8503 Record.AddSourceLocation(C->getColonLoc());
8505 Record.AddStmt(E);
8509 Record.writeEnum(C->getBindKind());
8510 Record.AddSourceLocation(C->getLParenLoc());
8511 Record.AddSourceLocation(C->getBindKindLoc());
8516 Record.AddStmt(C->getSize());
8517 Record.AddSourceLocation(C->getLParenLoc());
8521 Record.push_back(C->varlist_size());
8522 Record.push_back(C->getNumLoops());
8523 Record.AddSourceLocation(C->getLParenLoc());
8524 Record.push_back(C->getDependenceType());
8525 Record.AddSourceLocation(C->getDependenceLoc());
8526 Record.AddSourceLocation(C->getColonLoc());
8528 Record.AddStmt(VE);
8530 Record.AddStmt(C->getLoopData(I));
8534 Record.AddAttributes(C->getAttrs());
8535 Record.AddSourceLocation(C->getBeginLoc());
8536 Record.AddSourceLocation(C->getLParenLoc());
8537 Record.AddSourceLocation(C->getEndLoc());