#ifdef SERIALIZATIONSTART
__SERIALIZATIONSTART = DIAG_START_SERIALIZATION,
#undef SERIALIZATIONSTART
#endif

DIAG(err_ast_file_codegenopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 was %select{disabled|enabled}1 in precompiled file '%3' but is currently %select{disabled|enabled}2", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_codegenopt_value_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 differs in precompiled file '%1' vs. current file", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_diagopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is currently enabled, but was not in the precompiled file '%1'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_different_branch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{PCH|module|precompiled}0 file '%1' built from a different branch (%2) than the compiler (%3)", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_invalid, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%1' is not a valid %select{PCH|module|precompiled}0 file: %2", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_langopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 was %select{disabled|enabled}1 in precompiled file '%3' but is currently %select{disabled|enabled}2", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_langopt_value_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 differs in precompiled file '%1' vs. current file", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_macro_def_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of macro '%0' differs between the precompiled file '%3' ('%1') and the command line ('%2')", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_macro_def_undef, CLASS_ERROR, (unsigned)diag::Severity::Error, "macro '%0' was %select{defined|undef'd}1 in the precompiled file '%2' but %select{undef'd|defined}1 on the command line", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_modulecache_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "precompiled file '%2' was compiled with module cache path '%0', but the path is currently '%1'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "%select{PCH|module|precompiled}0 file '%1' not found%select{|: %3}2", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_out_of_date, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "%select{PCH|module|precompiled}0 file '%1' is out of date and needs to be rebuilt%select{|: %3}2", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_pp_detailed_record, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{command line contains|precompiled file '%1' was built with}0 '-detailed-preprocessing-record' but %select{precompiled file '%1' was not built with it|it is not present on the command line}0", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_targetopt_feature_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{precompiled file '%1' was|current translation unit is}0 compiled with the target feature '%2' but the %select{current translation unit is|precompiled file '%1' was}0 not", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_targetopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "precompiled file '%0' was compiled for the %1 '%2' but the current translation unit is being compiled for target '%3'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_undef, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{command line contains|precompiled file '%1' was built with}0 '-undef' but %select{precompiled file '%1' was not built with it|it is not present on the command line}0", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_version_too_new, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{PCH|module|precompiled }0 file '%1' uses a newer format that cannot be read", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_version_too_old, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{PCH|module|precompiled}0 file '%1' uses an older format that is no longer supported", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_ast_file_with_compiler_errors, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{PCH|module|precompiled}0 file '%1' contains compiler errors", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_failed_to_find_module_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "failed to find module file for module '%0'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_fe_ast_file_malformed, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "malformed or corrupted precompiled file: '%0'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_fe_ast_file_modified, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%0' has been modified since the %select{precompiled header|module file|precompiled file}1 '%2' was built: %select{size|mtime|content}3 changed%select{| (was %5, now %6)}4", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_fe_not_a_pch_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "input is not a PCH file: '%0'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_fe_pch_file_overridden, CLASS_ERROR, (unsigned)diag::Severity::Error, "file '%0' from the precompiled header has been overridden", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_fe_pch_malformed_block, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "malformed block record in PCH file: '%0'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_fe_unable_to_read_pch_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to read PCH file %0: '%1'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_imported_module_modmap_changed, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' %select{in|imported by}4 precompiled file '%1' found in a different module map file (%2) than when the importing precompiled file was built (%3)", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_imported_module_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' in precompiled file '%1' %select{(imported by precompiled file '%2') |}4is not defined in any loaded module map file; maybe you need to load '%3'?", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_imported_module_relocated, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' was built in directory '%1' but now resides in directory '%2'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_module_different_modmap, CLASS_ERROR, (unsigned)diag::Severity::Error, "module '%0' %select{uses|does not use}1 additional module map '%2'%select{| not}1 used when the module was built", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_module_file_conflict, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' is defined in both '%1' and '%2'", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_module_file_missing_top_level_submodule, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module file '%0' is missing its top-level submodule", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_module_file_not_module, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "precompiled file '%0' was not built as a module", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_module_no_size_mtime_for_header, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot emit module %0: %select{size|mtime}1 must be explicitly specified for missing header file \"%2\"", 0, SFINAE_SubstitutionFailure, false, true, true, false, 25)
DIAG(err_module_odr_violation_different_instantiations, CLASS_ERROR, (unsigned)diag::Severity::Error, "instantiation of %q0 is different in different modules", 0, SFINAE_SubstitutionFailure, false, true, true, false, 14)
DIAG(err_module_odr_violation_missing_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 from module '%1' is not present in definition of %q2%select{ in module '%4'| provided earlier}3", 0, SFINAE_Report, false, true, true, false, 14)
DIAG(err_module_unable_to_hash_content, CLASS_ERROR, (unsigned)diag::Severity::Error, "failed to hash content for '%0' because memory buffer cannot be retrieved", 0, SFINAE_SubstitutionFailure, false, true, true, false, 25)
DIAG(note_ast_file_rebuild_required, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "please rebuild precompiled file '%0'", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_ast_file_required_by, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'%0' required by '%1'", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_imported_by_pch_module_not_found, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "consider adding '%0' to the header search path", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_module_cache_path, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "after modifying system headers, please delete the module cache at '%0'", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_module_file_conflict, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "compiled from '%0' and '%1'", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_module_file_imported_by, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "imported by %select{|module '%2' in }1'%0'", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_module_odr_violation_no_possible_decls, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "definition has no member %0", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_module_odr_violation_possible_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration of %0 does not match", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_pch_vfsoverlay_empty, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{PCH|current translation unit}0 has no VFS overlays", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(note_pch_vfsoverlay_files, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{PCH|current translation unit}0 has the following VFS overlays:\n%1", 0, SFINAE_Suppress, false, false, true, false, 14)
DIAG(remark_module_import, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "importing module '%0'%select{| into '%3'}2 from '%1'", 644, SFINAE_Suppress, false, true, true, false, 14)
DIAG(remark_module_validation, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "validating %0 input files in module '%1' from '%2'", 649, SFINAE_Suppress, false, true, true, false, 14)
DIAG(warn_ast_file_config_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Error, "precompiled file '%0' cannot be loaded due to a configuration mismatch with the current compilation", 641, SFINAE_Suppress, false, false, true, false, 14)
DIAG(warn_decls_in_multiple_modules, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration %0 is detected to be defined in multiple module units, first is from '%1' and second is from '%2'; the compiler may not be good at merging the definitions. ", 233, SFINAE_Suppress, false, false, true, false, 14)
DIAG(warn_duplicate_module_file_extension, CLASS_WARNING, (unsigned)diag::Severity::Warning, "duplicate module file extension block name '%0'", 642, SFINAE_Suppress, false, false, true, false, 14)
DIAG(warn_module_file_mapping_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "loaded module file '%0' conflicts with imported file '%1'", 643, SFINAE_Suppress, false, false, true, false, 14)
DIAG(warn_module_system_bit_conflict, CLASS_WARNING, (unsigned)diag::Severity::Warning, "module file '%0' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored", 640, SFINAE_Suppress, false, false, true, false, 14)
DIAG(warn_module_uses_date_time, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{precompiled header|module}0 uses __DATE__ or __TIME__", 792, SFINAE_Suppress, false, false, true, false, 25)
DIAG(warn_pch_vfsoverlay_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "PCH was compiled with different VFS overlay files than are currently in use", 793, SFINAE_Suppress, false, false, true, false, 14)
