#ifdef COMMONSTART
__COMMONSTART = DIAG_START_COMMON,
#undef COMMONSTART
#endif

DIAG(err_cannot_open_file, CLASS_ERROR, diag::MAP_FATAL, "cannot open file '%0': %1", "", true, false, false, false, 0)
DIAG(err_default_special_members, CLASS_ERROR, diag::MAP_ERROR, "only special member functions may be defaulted", "", true, false, false, false, 0)
DIAG(err_deleted_non_function, CLASS_ERROR, diag::MAP_ERROR, "only functions can have deleted definitions", "", true, false, false, false, 0)
DIAG(err_expected_colon, CLASS_ERROR, diag::MAP_ERROR, "expected ':'", "", true, false, false, false, 0)
DIAG(err_expected_colon_after_setter_name, CLASS_ERROR, diag::MAP_ERROR, "method name referenced in property setter attribute must end with ':'", "", true, false, false, false, 0)
DIAG(err_expected_namespace_name, CLASS_ERROR, diag::MAP_ERROR, "expected namespace name", "", true, false, false, false, 0)
DIAG(err_file_modified, CLASS_ERROR, diag::MAP_FATAL, "file '%0' modified since it was first processed", "", true, false, false, false, 0)
DIAG(err_friends_define_only_namespace_scope, CLASS_ERROR, diag::MAP_ERROR, "cannot define a function with non-namespace scope in a friend declaration", "", true, false, false, false, 0)
DIAG(err_invalid_storage_class_in_func_decl, CLASS_ERROR, diag::MAP_ERROR, "invalid storage class specifier in function declarator", "", true, false, false, false, 0)
DIAG(err_module_cycle, CLASS_ERROR, diag::MAP_FATAL, "cyclic dependency in module '%0': %1", "", true, false, false, false, 0)
DIAG(err_module_not_built, CLASS_ERROR, diag::MAP_FATAL, "could not build module '%0'", "", true, false, false, false, 0)
DIAG(err_module_not_found, CLASS_ERROR, diag::MAP_FATAL, "module '%0' not found", "", true, false, false, false, 0)
DIAG(err_param_redefinition, CLASS_ERROR, diag::MAP_ERROR, "redefinition of parameter %0", "", true, false, false, false, 0)
DIAG(err_target_invalid_feature, CLASS_ERROR, diag::MAP_ERROR, "invalid target feature '%0'", "", true, false, false, false, 0)
DIAG(err_target_unknown_abi, CLASS_ERROR, diag::MAP_ERROR, "unknown target ABI '%0'", "", true, false, false, false, 0)
DIAG(err_target_unknown_cpu, CLASS_ERROR, diag::MAP_ERROR, "unknown target CPU '%0'", "", true, false, false, false, 0)
DIAG(err_target_unknown_cxxabi, CLASS_ERROR, diag::MAP_ERROR, "unknown C++ ABI '%0'", "", true, false, false, false, 0)
DIAG(err_target_unknown_triple, CLASS_ERROR, diag::MAP_ERROR, "unknown target triple '%0', please use -triple or -arch", "", true, false, false, false, 0)
DIAG(err_unsupported_bom, CLASS_ERROR, diag::MAP_FATAL, "%0 byte order mark detected in '%1', but encoding is not supported", "", true, false, false, false, 0)
DIAG(ext_longlong, CLASS_EXTENSION, diag::MAP_IGNORE, "'long long' is an extension when C99 mode is not enabled", "long-long", true, false, false, false, 0)
DIAG(ext_no_declarators, CLASS_EXTENSION, diag::MAP_WARNING, "declaration does not declare anything", "missing-declarations", true, false, false, false, 0)
DIAG(ext_variadic_templates, CLASS_EXTENSION, diag::MAP_WARNING, "variadic templates are a C++11 extension", "c++11-extensions", true, false, false, false, 0)
DIAG(fatal_too_many_errors, CLASS_ERROR, diag::MAP_FATAL, "too many errors emitted, stopping now", "", true, false, false, false, 0)
DIAG(note_also_found, CLASS_NOTE, diag::MAP_FATAL, "also found", "", true, false, false, false, 0)
DIAG(note_declared_at, CLASS_NOTE, diag::MAP_FATAL, "declared here", "", true, false, false, false, 0)
DIAG(note_duplicate_case_prev, CLASS_NOTE, diag::MAP_FATAL, "previous case defined here", "", true, false, false, false, 0)
DIAG(note_forward_declaration, CLASS_NOTE, diag::MAP_FATAL, "forward declaration of %0", "", true, false, false, false, 0)
DIAG(note_invalid_subexpr_in_const_expr, CLASS_NOTE, diag::MAP_FATAL, "subexpression not valid in a constant expression", "", true, false, false, false, 0)
DIAG(note_matching, CLASS_NOTE, diag::MAP_FATAL, "to match this '%0'", "", true, false, false, false, 0)
DIAG(note_possibility, CLASS_NOTE, diag::MAP_FATAL, "one possibility", "", true, false, false, false, 0)
DIAG(note_pragma_entered_here, CLASS_NOTE, diag::MAP_FATAL, "#pragma entered here", "", true, false, false, false, 0)
DIAG(note_previous_declaration, CLASS_NOTE, diag::MAP_FATAL, "previous declaration is here", "", true, false, false, false, 0)
DIAG(note_previous_definition, CLASS_NOTE, diag::MAP_FATAL, "previous definition is here", "", true, false, false, false, 0)
DIAG(note_previous_implicit_declaration, CLASS_NOTE, diag::MAP_FATAL, "previous implicit declaration is here", "", true, false, false, false, 0)
DIAG(note_previous_use, CLASS_NOTE, diag::MAP_FATAL, "previous use is here", "", true, false, false, false, 0)
DIAG(note_type_being_defined, CLASS_NOTE, diag::MAP_FATAL, "definition of %0 is not complete until the closing '}'", "", true, false, false, false, 0)
DIAG(note_using, CLASS_NOTE, diag::MAP_FATAL, "using", "", true, false, false, false, 0)
DIAG(warn_cxx98_compat_longlong, CLASS_WARNING, diag::MAP_IGNORE, "'long long' is incompatible with C++98", "c++98-compat-pedantic", true, false, false, false, 0)
DIAG(warn_cxx98_compat_variadic_templates, CLASS_WARNING, diag::MAP_IGNORE, "variadic templates are incompatible with C++98", "c++98-compat", true, false, false, false, 0)
DIAG(warn_integer_too_large, CLASS_WARNING, diag::MAP_WARNING, "integer constant is too large for its type", "", true, false, false, false, 0)
DIAG(warn_integer_too_large_for_signed, CLASS_WARNING, diag::MAP_WARNING, "integer constant is so large that it is unsigned", "", true, false, false, false, 0)
DIAG(warn_method_param_declaration, CLASS_WARNING, diag::MAP_IGNORE, "redeclaration of method parameter %0", "duplicate-method-arg", true, false, false, false, 0)
DIAG(warn_method_param_redefinition, CLASS_WARNING, diag::MAP_WARNING, "redefinition of method parameter %0", "", true, false, false, false, 0)
DIAG(warn_module_build, CLASS_WARNING, diag::MAP_IGNORE, "building module '%0' from source", "module-build", true, false, false, false, 0)
