reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

gen/tools/clang/include/clang/Basic/DiagnosticCommonKinds.inc
   73 DIAG(ext_c99_longlong, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'long long' is an extension when C99 mode is not enabled", 384, SFINAE_Suppress, false, false, 0)
   74 DIAG(ext_clang_diagnose_if, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'diagnose_if' is a clang extension", 269, SFINAE_Suppress, false, false, 0)
   75 DIAG(ext_clang_enable_if, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'enable_if' is a clang extension", 269, SFINAE_Suppress, false, false, 0)
   76 DIAG(ext_cxx11_longlong, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'long long' is a C++11 extension", 88, SFINAE_Suppress, false, false, 0)
   77 DIAG(ext_duplicate_declspec, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "duplicate '%0' declaration specifier", 206, SFINAE_Suppress, false, false, 0)
   78 DIAG(ext_integer_literal_too_large_for_signed, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "integer literal is too large to be represented in a signed integer type, interpreting as unsigned", 322, SFINAE_Suppress, false, false, 0)
   79 DIAG(ext_old_implicitly_unsigned_long_cxx, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards", 81, SFINAE_Suppress, false, false, 0)
   80 DIAG(ext_variadic_templates, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "variadic templates are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
   81 DIAG(ext_warn_duplicate_declspec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "duplicate '%0' declaration specifier", 206, SFINAE_Suppress, false, false, 0)
gen/tools/clang/include/clang/Basic/DiagnosticLexKinds.inc
  166 DIAG(ext_binary_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "binary integer literals are a GNU extension", 276, SFINAE_Suppress, false, false, 1)
  167 DIAG(ext_binary_literal_cxx14, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "binary integer literals are a C++14 extension", 90, SFINAE_Suppress, false, false, 1)
  168 DIAG(ext_c99_whitespace_required_after_macro_name, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C99 requires whitespace after the macro name", 122, SFINAE_Suppress, false, false, 1)
  169 DIAG(ext_charize_microsoft, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "charizing operator #@ is a Microsoft extension", 398, SFINAE_Suppress, false, false, 1)
  170 DIAG(ext_comment_paste_microsoft, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "pasting two '/' tokens into a '//' comment is a Microsoft extension", 399, SFINAE_Suppress, false, false, 1)
  171 DIAG(ext_ctrl_z_eof_microsoft, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "treating Ctrl-Z as end-of-file is a Microsoft extension", 404, SFINAE_Suppress, false, false, 1)
  172 DIAG(ext_dollar_in_identifier, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'$' in identifier", 204, SFINAE_Suppress, false, false, 1)
  173 DIAG(ext_embedded_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "embedding a directive within macro arguments has undefined behavior", 214, SFINAE_Suppress, false, false, 1)
  174 DIAG(ext_empty_character, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "empty character constant", 369, SFINAE_Suppress, false, false, 1)
  175 DIAG(ext_empty_fnmacro_arg, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "empty macro arguments are a C99 feature", 122, SFINAE_Suppress, false, false, 1)
  176 DIAG(ext_four_char_character_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "multi-character character constant", 263, SFINAE_Suppress, false, false, 1)
  177 DIAG(ext_hex_constant_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "hexadecimal floating constants are a C99 feature", 122, SFINAE_Suppress, false, false, 1)
  178 DIAG(ext_hex_literal_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "hexadecimal floating literals are a C++17 feature", 97, SFINAE_Suppress, false, false, 1)
  179 DIAG(ext_line_comment, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "// comments are not allowed in this language", 134, SFINAE_Suppress, false, false, 1)
  180 DIAG(ext_missing_varargs_arg, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "must specify at least one argument for '...' parameter of variadic macro", 298, SFINAE_Suppress, false, false, 1)
  181 DIAG(ext_missing_whitespace_after_macro_name, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "whitespace required after macro name", 0, SFINAE_Suppress, false, false, 1)
  182 DIAG(ext_ms_reserved_user_defined_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "invalid suffix on literal; C++11 requires a space between literal and identifier", 607, SFINAE_Suppress, false, false, 1)
  183 DIAG(ext_multi_line_line_comment, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "multi-line // comment", 134, SFINAE_Suppress, false, false, 1)
  184 DIAG(ext_multichar_character_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "multi-character character constant", 457, SFINAE_Suppress, false, false, 1)
  185 DIAG(ext_named_variadic_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "named variadic macros are a GNU extension", 787, SFINAE_Suppress, false, false, 1)
  186 DIAG(ext_no_newline_eof, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "no newline at end of file", 463, SFINAE_Suppress, false, false, 1)
  187 DIAG(ext_nonstandard_escape, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of non-standard escape character '\\%0'", 560, SFINAE_Suppress, false, false, 1)
  188 DIAG(ext_on_off_switch_syntax, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected 'ON' or 'OFF' or 'DEFAULT' in pragma", 739, SFINAE_Suppress, false, false, 1)
  189 DIAG(ext_paste_comma, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "token pasting of ',' and __VA_ARGS__ is a GNU extension", 298, SFINAE_Suppress, false, false, 1)
  190 DIAG(ext_pp_bad_paste_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "pasting formed '%0', an invalid preprocessing token", 371, SFINAE_Suppress, false, false, 1)
  191 DIAG(ext_pp_bad_vaargs_use, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro", 560, SFINAE_Suppress, false, false, 1)
  192 DIAG(ext_pp_bad_vaopt_use, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "__VA_OPT__ can only appear in the expansion of a variadic macro", 787, SFINAE_Suppress, false, false, 1)
  193 DIAG(ext_pp_comma_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "comma operator in operand of #if", 560, SFINAE_Suppress, false, false, 1)
  194 DIAG(ext_pp_extra_tokens_at_eol, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "extra tokens at end of #%0 directive", 240, SFINAE_Suppress, false, false, 1)
  195 DIAG(ext_pp_ident_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#ident is a language extension", 560, SFINAE_Suppress, false, false, 1)
  196 DIAG(ext_pp_import_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#import is a language extension", 324, SFINAE_Suppress, false, false, 1)
  197 DIAG(ext_pp_include_next_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#include_next is a language extension", 288, SFINAE_Suppress, false, false, 1)
  198 DIAG(ext_pp_include_search_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#include resolved using non-portable Microsoft search rules as: %0", 415, SFINAE_Suppress, false, false, 1)
  199 DIAG(ext_pp_line_too_big, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C requires #line number to be less than %0, allowed as extension", 560, SFINAE_Suppress, false, false, 1)
  200 DIAG(ext_pp_line_zero, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#line directive with zero argument is a GNU extension", 297, SFINAE_Suppress, false, false, 1)
  201 DIAG(ext_pp_macro_redef, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 macro redefined", 386, SFINAE_Suppress, false, false, 1)
  202 DIAG(ext_pp_opencl_variadic_macros, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variadic macros are a Clang extension in OpenCL", 560, SFINAE_Suppress, false, false, 1)
  203 DIAG(ext_pp_operator_used_as_macro_name, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C++ operator %0 (aka %1) used as a macro name", 401, SFINAE_Suppress, false, false, 1)
  204 DIAG(ext_pp_redef_builtin_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "redefining builtin macro", 74, SFINAE_Suppress, false, false, 1)
  205 DIAG(ext_pp_undef_builtin_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "undefining builtin macro", 74, SFINAE_Suppress, false, false, 1)
  206 DIAG(ext_pp_warning_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#warning is a language extension", 560, SFINAE_Suppress, false, false, 1)
  207 DIAG(ext_pragma_syntax_eod, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected end of directive in pragma", 739, SFINAE_Suppress, false, false, 1)
  208 DIAG(ext_reserved_user_defined_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "invalid suffix on literal; C++11 requires a space between literal and identifier", 607, SFINAE_Suppress, false, false, 1)
  209 DIAG(ext_string_too_long, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "string literal of length %0 exceeds maximum length %1 that %select{C90|ISO C99|C++}2 compilers are required to support", 543, SFINAE_Suppress, false, false, 1)
  210 DIAG(ext_token_used, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extension used", 376, SFINAE_Suppress, false, false, 1)
  211 DIAG(ext_unicode_whitespace, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "treating Unicode character as whitespace", 733, SFINAE_Suppress, false, false, 1)
  212 DIAG(ext_unknown_escape, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unknown escape sequence '\\%0'", 738, SFINAE_Suppress, false, false, 1)
  213 DIAG(ext_unterminated_char_or_string, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "missing terminating %select{'|'\"'}0 character", 369, SFINAE_Suppress, false, false, 1)
  214 DIAG(ext_variadic_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variadic macros are a C99 feature", 787, SFINAE_Suppress, false, false, 1)
  255 DIAG(warn_bad_character_encoding, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "illegal character encoding in character literal", 370, SFINAE_Suppress, false, false, 1)
  256 DIAG(warn_bad_string_encoding, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "illegal character encoding in string literal", 370, SFINAE_Suppress, false, false, 1)
  280 DIAG(warn_defined_in_function_type_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "macro expansion producing 'defined' has undefined behavior", 228, SFINAE_Suppress, false, false, 1)
  284 DIAG(warn_has_warning_invalid_option, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "__has_warning expected option name (e.g. \"-Wundef\")", 389, SFINAE_Suppress, false, false, 1)
  305 DIAG(warn_pp_macro_hides_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "keyword is hidden by macro definition", 374, SFINAE_Suppress, false, false, 1)
  312 DIAG(warn_pragma_diagnostic_cannot_pop, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma diagnostic pop could not pop, no matching push", 739, SFINAE_Suppress, false, false, 1)
  313 DIAG(warn_pragma_diagnostic_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'", 739, SFINAE_Suppress, false, false, 1)
  314 DIAG(warn_pragma_diagnostic_invalid_option, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma diagnostic expected option name (e.g. \"-Wundef\")", 739, SFINAE_Suppress, false, false, 1)
  315 DIAG(warn_pragma_diagnostic_invalid_token, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unexpected token in pragma diagnostic", 739, SFINAE_Suppress, false, false, 1)
  316 DIAG(warn_pragma_diagnostic_unknown_warning, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unknown warning group '%0', ignored", 741, SFINAE_Suppress, false, false, 1)
  317 DIAG(warn_pragma_exec_charset_expected, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma execution_character_set expected '%0'", 739, SFINAE_Suppress, false, false, 1)
  318 DIAG(warn_pragma_exec_charset_push_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma execution_character_set invalid value '%0', only 'UTF-8' is supported", 739, SFINAE_Suppress, false, false, 1)
  319 DIAG(warn_pragma_exec_charset_spec_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma execution_character_set expected 'push' or 'pop'", 739, SFINAE_Suppress, false, false, 1)
  321 DIAG(warn_pragma_include_alias_expected, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma include_alias expected '%0'", 739, SFINAE_Suppress, false, false, 1)
  322 DIAG(warn_pragma_include_alias_expected_filename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma include_alias expected include filename", 739, SFINAE_Suppress, false, false, 1)
  323 DIAG(warn_pragma_include_alias_mismatch_angle, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "angle-bracketed include <%0> cannot be aliased to double-quoted include \"%1\"", 739, SFINAE_Suppress, false, false, 1)
  324 DIAG(warn_pragma_include_alias_mismatch_quote, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "double-quoted include \"%0\" cannot be aliased to angle-bracketed include <%1>", 739, SFINAE_Suppress, false, false, 1)
  327 DIAG(warn_pragma_warning_expected, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning expected '%0'", 739, SFINAE_Suppress, false, false, 1)
  328 DIAG(warn_pragma_warning_expected_number, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning expected a warning number", 739, SFINAE_Suppress, false, false, 1)
  329 DIAG(warn_pragma_warning_push_level, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning(push, level) requires a level between 0 and 4", 739, SFINAE_Suppress, false, false, 1)
  330 DIAG(warn_pragma_warning_spec_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4", 739, SFINAE_Suppress, false, false, 1)
  336 DIAG(warn_ucn_not_valid_in_c89_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "universal character names are only valid in C99 or C++", 731, SFINAE_Suppress, false, false, 1)
gen/tools/clang/include/clang/Basic/DiagnosticParseKinds.inc
  319 DIAG(ext_abstract_pack_declarator_parens, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++11 requires a parenthesized pack declaration to have a name", 24, SFINAE_Suppress, false, false, 4)
  320 DIAG(ext_alias_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "alias declarations are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  321 DIAG(ext_alignof_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 applied to an expression is a GNU extension", 272, SFINAE_Suppress, false, false, 4)
  322 DIAG(ext_auto_storage_class, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases", 52, SFINAE_Suppress, false, false, 4)
  323 DIAG(ext_auto_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'__auto_type' is a GNU extension", 275, SFINAE_Suppress, false, false, 4)
  324 DIAG(ext_bitfield_member_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default member initializer for bit-field is a C++2a extension", 105, SFINAE_Suppress, false, false, 4)
  325 DIAG(ext_c11_feature, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'%0' is a C11 extension", 119, SFINAE_Suppress, false, false, 4)
  326 DIAG(ext_c99_compound_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "compound literals are a C99-specific feature", 122, SFINAE_Suppress, false, false, 4)
  327 DIAG(ext_c99_feature, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'%0' is a C99 extension", 122, SFINAE_Suppress, false, false, 4)
  328 DIAG(ext_c99_variable_decl_in_for_loop, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variable declaration in for loop is a C99-specific feature", 122, SFINAE_Suppress, false, false, 4)
  329 DIAG(ext_clang_c_enum_fixed_underlying_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "enumeration types with a fixed underlying type are a Clang extension", 243, SFINAE_Suppress, false, false, 4)
  330 DIAG(ext_concept_legacy_bool_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++2a does not permit the 'bool' keyword after 'concept'", 138, SFINAE_Suppress, false, false, 15)
  331 DIAG(ext_constexpr_if, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "constexpr if is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  332 DIAG(ext_constexpr_on_lambda_cxx17, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'constexpr' on lambda expressions is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  333 DIAG(ext_cxx11_enum_fixed_underlying_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "enumeration types with a fixed underlying type are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  334 DIAG(ext_decltype_auto_type_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'decltype(auto)' type specifier is a C++14 extension", 93, SFINAE_Suppress, false, false, 4)
  335 DIAG(ext_decomp_decl_empty, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++17 does not allow a decomposition group to be empty", 216, SFINAE_Suppress, false, false, 4)
  336 DIAG(ext_defaulted_deleted_function, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{defaulted|deleted}0 function definitions are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  337 DIAG(ext_dynamic_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "ISO C++17 does not allow dynamic exception specifications", 212, SFINAE_Suppress, false, false, 4)
  338 DIAG(ext_ellipsis_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "exception specification of '...' is a Microsoft extension", 407, SFINAE_Suppress, false, false, 4)
  339 DIAG(ext_empty_translation_unit, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C requires a translation unit to contain at least one declaration", 218, SFINAE_Suppress, false, false, 4)
  340 DIAG(ext_enumerator_list_comma_c, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "commas at the end of enumerator lists are a C99-specific feature", 122, SFINAE_Suppress, false, false, 4)
  341 DIAG(ext_enumerator_list_comma_cxx, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "commas at the end of enumerator lists are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  342 DIAG(ext_expected_semi_decl_list, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected ';' at end of declaration list", 0, SFINAE_Suppress, false, false, 4)
  343 DIAG(ext_extern_template, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extern templates are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  344 DIAG(ext_extra_semi, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extra ';' %select{outside of a function|inside a %1|inside instance variable list|after member function definition}0", 238, SFINAE_Suppress, false, false, 4)
  345 DIAG(ext_extra_semi_cxx11, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extra ';' outside of a function is a C++11 extension", 86, SFINAE_Suppress, false, false, 4)
  346 DIAG(ext_fold_expression, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pack fold expression is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  347 DIAG(ext_for_range, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "range-based for loop is a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  348 DIAG(ext_for_range_init_stmt, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "range-based for loop initialization statements are a C++2a extension", 105, SFINAE_Suppress, false, false, 4)
  349 DIAG(ext_generalized_initializer_lists, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "generalized initializer lists are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  350 DIAG(ext_gnu_address_of_label, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU address-of-label extension", 290, SFINAE_Suppress, false, false, 4)
  351 DIAG(ext_gnu_array_range, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU array range extension", 281, SFINAE_Suppress, false, false, 4)
  352 DIAG(ext_gnu_case_range, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU case range extension", 277, SFINAE_Suppress, false, false, 4)
  353 DIAG(ext_gnu_conditional_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU ?: conditional expression extension, omitting middle operand", 280, SFINAE_Suppress, false, false, 4)
  354 DIAG(ext_gnu_empty_initializer, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU empty initializer extension", 282, SFINAE_Suppress, false, false, 4)
  355 DIAG(ext_gnu_indirect_goto, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU indirect-goto extension", 290, SFINAE_Suppress, false, false, 4)
  356 DIAG(ext_gnu_missing_equal_designator, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of GNU 'missing =' extension in designator", 281, SFINAE_Suppress, false, false, 4)
  357 DIAG(ext_gnu_old_style_field_designator, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of GNU old-style field designator extension", 281, SFINAE_Suppress, false, false, 4)
  358 DIAG(ext_gnu_statement_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU statement expression extension", 292, SFINAE_Suppress, false, false, 4)
  359 DIAG(ext_ident_list_in_param, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "type-less parameter names in function declaration", 560, SFINAE_Suppress, false, false, 4)
  360 DIAG(ext_init_statement, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'%select{if|switch}0' initialization statements are a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  361 DIAG(ext_inline_namespace, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "inline namespaces are a C++11 feature", 87, SFINAE_Suppress, false, false, 4)
  362 DIAG(ext_inline_nested_namespace_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "inline nested namespace definition is a C++2a extension", 105, SFINAE_Suppress, false, false, 4)
  363 DIAG(ext_keyword_as_ident, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "keyword '%0' will be made available as an identifier %select{here|for the remainder of the translation unit}1", 373, SFINAE_Suppress, false, false, 4)
  364 DIAG(ext_lambda_template_parameter_list, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit template parameter list for lambdas is a C++2a extension", 105, SFINAE_Suppress, false, false, 4)
  365 DIAG(ext_ms_c_enum_fixed_underlying_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "enumeration types with a fixed underlying type are a Microsoft extension", 411, SFINAE_Suppress, false, false, 4)
  366 DIAG(ext_ms_sealed_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'sealed' keyword is a Microsoft extension", 419, SFINAE_Suppress, false, false, 4)
  367 DIAG(ext_multi_using_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of multiple declarators in a single using declaration is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  368 DIAG(ext_nested_namespace_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "nested namespace definition is a C++17 extension; define each namespace separately", 97, SFINAE_Suppress, false, false, 4)
  369 DIAG(ext_nonstatic_member_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "in-class initialization of non-static data member is a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  370 DIAG(ext_ns_enum_attribute, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "attributes on %select{a namespace|an enumerator}0 declaration are a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  371 DIAG(ext_nullability, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "type nullability specifier %0 is a Clang extension", 489, SFINAE_Suppress, false, false, 4)
  372 DIAG(ext_override_control_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'%0' keyword is a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  373 DIAG(ext_ref_qualifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "reference qualifiers on functions are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  374 DIAG(ext_rvalue_reference, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "rvalue references are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  375 DIAG(ext_scoped_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "scoped enumerations are a C++11 extension", 85, SFINAE_Suppress, false, false, 4)
  376 DIAG(ext_static_assert_no_message, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static_assert with no message is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  377 DIAG(ext_stdc_pragma_ignored, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unknown pragma in STDC namespace", 739, SFINAE_Suppress, false, false, 4)
  378 DIAG(ext_template_template_param_typename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template template parameter using 'typename' is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  379 DIAG(ext_thread_before, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'__thread' before '%0'", 560, SFINAE_Suppress, false, false, 4)
  380 DIAG(ext_using_attribute_ns, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default scope specifier for attributes is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  381 DIAG(ext_using_declaration_pack, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pack expansion of using declaration is a C++17 extension", 97, SFINAE_Suppress, false, false, 4)
  382 DIAG(ext_warn_gnu_final, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "__final is a GNU extension, consider using C++11 final", 269, SFINAE_Suppress, false, false, 4)
  455 DIAG(warn_expected_qualified_after_typename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected a qualified name after 'typename'", 0, SFINAE_Suppress, false, false, 4)
  463 DIAG(warn_missing_dependent_template_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use 'template' keyword to treat '%0' as a dependent template name", 0, SFINAE_Suppress, false, false, 4)
gen/tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc
  750 DIAG(err_func_returning_qualified_void, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function cannot return qualified void type %0", 589, SFINAE_Suppress, false, false, 2)
 2011 DIAG(ext_adl_only_template_id, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of function template name with no prior declaration in function call with explicit template arguments is a C++2a extension", 105, SFINAE_Suppress, false, false, 2)
 2012 DIAG(ext_aggregate_init_not_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "initializer for aggregate is not a compile-time constant", 122, SFINAE_Suppress, false, false, 2)
 2013 DIAG(ext_anonymous_record_with_anonymous_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous types declared in an anonymous %select{struct|union}0 are an extension", 460, SFINAE_Suppress, false, false, 2)
 2014 DIAG(ext_anonymous_record_with_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "types declared in an anonymous %select{struct|union}0 are a Microsoft extension", 396, SFINAE_Suppress, false, false, 2)
 2015 DIAG(ext_anonymous_struct_union_qualified, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous %select{struct|union}0 cannot be '%1'", 560, SFINAE_Suppress, false, false, 2)
 2016 DIAG(ext_anonymous_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous unions are a C11 extension", 119, SFINAE_Suppress, false, false, 2)
 2017 DIAG(ext_array_init_copy, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "initialization of an array %diff{of type $ from a compound literal of type $|from a compound literal}0,1 is a GNU extension", 279, SFINAE_Suppress, false, false, 2)
 2018 DIAG(ext_array_init_parens, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "parenthesized initialization of a member array is a GNU extension", 274, SFINAE_Suppress, false, false, 2)
 2019 DIAG(ext_array_size_conversion, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2020 DIAG(ext_auto_new_list_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C++ standards before C++17 do not allow new expression for type %0 to use list-initialization", 97, SFINAE_Suppress, false, false, 2)
 2021 DIAG(ext_auto_type_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'auto' type specifier is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2022 DIAG(ext_bad_cxx_cast_qualifiers_away_incoherent, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++ does not allow %select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2 because it casts away qualifiers, even though the source and destination types are unrelated", 128, SFINAE_SubstitutionFailure, false, false, 2)
 2023 DIAG(ext_c11_anonymous_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous structs are a C11 extension", 119, SFINAE_Suppress, false, false, 2)
 2024 DIAG(ext_c99_array_usage, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%select{qualifier in |static |}0array size %select{||'[*] '}0is a C99 feature", 122, SFINAE_Suppress, false, false, 2)
 2025 DIAG(ext_c99_flexible_array_member, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array members are a C99 feature", 122, SFINAE_Suppress, false, false, 2)
 2026 DIAG(ext_cannot_use_trivial_abi, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'trivial_abi' cannot be applied to %0", 303, SFINAE_Suppress, false, false, 2)
 2027 DIAG(ext_cast_fn_obj, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "cast between pointer-to-function and pointer-to-object is an extension", 560, SFINAE_Suppress, false, false, 2)
 2028 DIAG(ext_cce_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{case value|enumerator value|non-type template argument|array size|constexpr if condition|explicit specifier argument}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1", 89, SFINAE_SubstitutionFailure, false, false, 2)
 2029 DIAG(ext_complex_component_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "complex initialization specifying real and imaginary components is an extension", 137, SFINAE_Suppress, false, false, 2)
 2030 DIAG(ext_constexpr_body_invalid_stmt, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of this statement in a constexpr %select{function|constructor}0 is a C++14 extension", 93, SFINAE_Suppress, false, false, 2)
 2031 DIAG(ext_constexpr_body_invalid_stmt_cxx2a, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of this statement in a constexpr %select{function|constructor}0 is a C++2a extension", 105, SFINAE_Suppress, false, false, 2)
 2032 DIAG(ext_constexpr_body_multiple_return, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "multiple return statements in constexpr function is a C++14 extension", 93, SFINAE_Suppress, false, false, 2)
 2033 DIAG(ext_constexpr_ctor_missing_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "constexpr constructor that does not initialize all members is a C++20 extension", 105, SFINAE_Suppress, false, false, 2)
 2034 DIAG(ext_constexpr_function_never_constant_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "constexpr %select{function|constructor}0 never produces a constant expression", 360, SFINAE_Suppress, false, false, 2)
 2035 DIAG(ext_constexpr_function_try_block_cxx2a, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function try block in constexpr %select{function|constructor}0 is a C++2a extension", 105, SFINAE_Suppress, false, false, 2)
 2036 DIAG(ext_constexpr_local_var, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "variable declaration in a constexpr %select{function|constructor}0 is a C++14 extension", 93, SFINAE_Suppress, false, false, 2)
 2037 DIAG(ext_constexpr_local_var_no_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "uninitialized variable in a constexpr %select{function|constructor}0 is a C++20 extension", 105, SFINAE_Suppress, false, false, 2)
 2038 DIAG(ext_constexpr_type_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "type definition in a constexpr %select{function|constructor}0 is a C++14 extension", 93, SFINAE_Suppress, false, false, 2)
 2039 DIAG(ext_constexpr_union_ctor_no_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "constexpr union constructor that does not initialize any member is a C++20 extension", 105, SFINAE_Suppress, false, false, 2)
 2040 DIAG(ext_constinit_missing, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'constinit' specifier missing on initializing declaration of %0", 431, SFINAE_Suppress, false, false, 2)
 2041 DIAG(ext_cxx14_attr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of the %0 attribute is a C++14 extension", 93, SFINAE_Suppress, false, false, 2)
 2042 DIAG(ext_cxx17_attr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of the %0 attribute is a C++17 extension", 97, SFINAE_Suppress, false, false, 2)
 2043 DIAG(ext_cxx2a_attr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of the %0 attribute is a C++2a extension", 105, SFINAE_Suppress, false, false, 2)
 2044 DIAG(ext_cxx_designated_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "designated initializers are a C++20 extension", 104, SFINAE_Suppress, false, false, 2)
 2045 DIAG(ext_decomp_decl, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "decomposition declarations are a C++17 extension", 97, SFINAE_Suppress, false, false, 2)
 2046 DIAG(ext_decomp_decl_cond, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++17 does not permit structured binding declaration in a condition", 61, SFINAE_Suppress, false, false, 2)
 2047 DIAG(ext_decomp_decl_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "decomposition declaration declared %plural{1:'%1'|:with '%1' specifiers}0 is a C++2a extension", 105, SFINAE_Suppress, false, false, 2)
 2048 DIAG(ext_default_init_const, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default initialization of an object of const type %0%select{| without a user-provided default constructor}1 is a Microsoft extension", 400, SFINAE_Suppress, false, false, 2)
 2049 DIAG(ext_defaulted_comparison, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "defaulted comparison operators are a C++20 extension", 105, SFINAE_Suppress, false, false, 2)
 2050 DIAG(ext_defaulted_comparison_empty_union, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++2a does not allow defaulting %0 in %select{union-like class|union}1 %2 despite it having no variant members", 168, SFINAE_Suppress, false, false, 2)
 2051 DIAG(ext_defaulted_comparison_reference_member, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++2a does not allow defaulting %0 in class %1 with reference member", 168, SFINAE_Suppress, false, false, 2)
 2052 DIAG(ext_defaulted_comparison_union, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++2a does not allow defaulting %0 in %select{union-like class|union}1 %2", 168, SFINAE_Suppress, false, false, 2)
 2053 DIAG(ext_delete_void_ptr_operand, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "cannot delete expression with pointer-to-'void' type %0", 172, SFINAE_Suppress, false, false, 2)
 2054 DIAG(ext_deprecated_string_literal_conversion, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++11 does not allow conversion from string literal to %0", 799, SFINAE_SubstitutionFailure, false, false, 2)
 2055 DIAG(ext_designated_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "designated initializers are a C99 feature", 121, SFINAE_Suppress, false, false, 2)
 2056 DIAG(ext_designated_init_array, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "array designators are a C99 extension", 121, SFINAE_Suppress, false, false, 2)
 2057 DIAG(ext_designated_init_mixed, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "mixture of designated and non-designated initializers in the same initializer list is a C99 extension", 121, SFINAE_Suppress, false, false, 2)
 2058 DIAG(ext_designated_init_nested, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "nested designators are a C99 extension", 121, SFINAE_Suppress, false, false, 2)
 2059 DIAG(ext_designated_init_reordered, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++ requires field designators to be specified in declaration order; field %1 will be initialized after field %0", 604, SFINAE_SubstitutionFailure, false, false, 2)
 2060 DIAG(ext_empty_struct_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "empty %select{struct|union}0 is a GNU extension", 283, SFINAE_Suppress, false, false, 2)
 2061 DIAG(ext_enum_friend, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "befriending enumeration type %0 is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2062 DIAG(ext_enum_too_large, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "enumeration values exceed range of largest integer", 225, SFINAE_Suppress, false, false, 2)
 2063 DIAG(ext_enum_value_not_int, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C restricts enumerator values to range of 'int' (%0 is too %select{small|large}1)", 560, SFINAE_Suppress, false, false, 2)
 2064 DIAG(ext_enumerator_increment_too_large, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incremented enumerator value %0 is not representable in the largest integer type", 225, SFINAE_Suppress, false, false, 2)
 2065 DIAG(ext_enumerator_too_large, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "enumerator value is not representable in the underlying type %0", 406, SFINAE_Suppress, false, false, 2)
 2066 DIAG(ext_equals_this_lambda_capture_cxx2a, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit capture of 'this' with a capture default of '=' is a C++2a extension", 105, SFINAE_Suppress, false, false, 3)
 2067 DIAG(ext_equivalent_internal_linkage_decl_in_modules, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ambiguous use of internal linkage declaration %0 defined in multiple modules", 451, SFINAE_Suppress, false, false, 13)
 2068 DIAG(ext_excess_initializers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "excess elements in %select{array|vector|scalar|union|struct}0 initializer", 0, SFINAE_Suppress, false, false, 2)
 2069 DIAG(ext_excess_initializers_in_char_array_initializer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "excess elements in char array initializer", 0, SFINAE_Suppress, false, false, 2)
 2070 DIAG(ext_explicit_conversion_functions, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit conversion functions are a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2071 DIAG(ext_explicit_instantiation_duplicate, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "duplicate explicit instantiation of %0 ignored as a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2072 DIAG(ext_explicit_instantiation_without_qualified_id, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "qualifier in explicit instantiation of %q0 requires a template-id (a typedef is not permitted)", 560, SFINAE_Suppress, false, false, 2)
 2073 DIAG(ext_explicit_specialization_storage_class, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit specialization cannot have a storage class", 0, SFINAE_Suppress, false, false, 2)
 2074 DIAG(ext_export_no_name_block, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++20 does not permit %select{an empty|a static_assert}0 declaration to appear in an export block", 232, SFINAE_Suppress, false, false, 13)
 2075 DIAG(ext_export_no_names, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++20 does not permit a declaration that does not introduce any names to be exported", 232, SFINAE_Suppress, false, false, 13)
 2076 DIAG(ext_export_using_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++20 does not permit using directive to be exported", 233, SFINAE_Suppress, false, false, 13)
 2077 DIAG(ext_expr_not_ice, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "expression is not an %select{integer|integral}0 constant expression; folding it to a constant is a GNU extension", 286, SFINAE_Suppress, false, false, 2)
 2078 DIAG(ext_flexible_array_empty_aggregate_gnu, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a GNU extension", 283, SFINAE_Suppress, false, false, 2)
 2079 DIAG(ext_flexible_array_empty_aggregate_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a Microsoft extension", 412, SFINAE_Suppress, false, false, 2)
 2080 DIAG(ext_flexible_array_in_array, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%0 may not be used as an array element due to flexible array member", 245, SFINAE_Suppress, false, false, 2)
 2081 DIAG(ext_flexible_array_in_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%0 may not be nested in a struct due to flexible array member", 245, SFINAE_Suppress, false, false, 2)
 2082 DIAG(ext_flexible_array_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array initialization is a GNU extension", 284, SFINAE_Suppress, false, false, 2)
 2083 DIAG(ext_flexible_array_union_gnu, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in a union is a GNU extension", 285, SFINAE_Suppress, false, false, 2)
 2084 DIAG(ext_flexible_array_union_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in a union is a Microsoft extension", 412, SFINAE_Suppress, false, false, 2)
 2085 DIAG(ext_for_range_begin_end_types_differ, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'begin' and 'end' returning different types (%0 and %1) is a C++17 extension", 97, SFINAE_Suppress, false, false, 2)
 2086 DIAG(ext_forward_ref_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C forbids forward references to 'enum' types", 560, SFINAE_Suppress, false, false, 2)
 2087 DIAG(ext_forward_ref_enum_def, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "redeclaration of already-defined enum %0 is a GNU extension", 291, SFINAE_Suppress, false, false, 2)
 2088 DIAG(ext_found_via_dependent_bases_lookup, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of identifier %0 found via unqualified lookup into dependent bases of class templates is a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2089 DIAG(ext_freestanding_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "complex numbers are an extension in a freestanding C99 implementation", 560, SFINAE_Suppress, false, false, 2)
 2090 DIAG(ext_friend_tag_redecl_outside_namespace, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier", 422, SFINAE_Suppress, false, false, 2)
 2091 DIAG(ext_gnu_anonymous_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous structs are a GNU extension", 273, SFINAE_Suppress, false, false, 2)
 2092 DIAG(ext_gnu_ptr_func_arith, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "arithmetic on%select{ a|}0 pointer%select{|s}0 to%select{ the|}2 function type%select{|s}2 %1%select{| and %3}2 is a GNU extension", 563, SFINAE_Suppress, false, false, 2)
 2093 DIAG(ext_gnu_subscript_void_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "subscript of a pointer to void is a GNU extension", 563, SFINAE_Suppress, false, false, 2)
 2094 DIAG(ext_gnu_void_ptr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "arithmetic on%select{ a|}0 pointer%select{|s}0 to void is a GNU extension", 563, SFINAE_Suppress, false, false, 2)
 2095 DIAG(ext_goto_into_protected_scope, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "jump from this goto statement to its label is a Microsoft extension", 413, SFINAE_Suppress, false, false, 2)
 2096 DIAG(ext_imaginary_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "imaginary constants are a GNU extension", 287, SFINAE_Suppress, false, false, 2)
 2097 DIAG(ext_implicit_exception_spec_mismatch, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function previously declared with an %select{explicit|implicit}0 exception specification redeclared with an %select{implicit|explicit}0 exception specification", 312, SFINAE_Suppress, false, false, 2)
 2098 DIAG(ext_implicit_function_decl, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "implicit declaration of function %0 is invalid in C99", 317, SFINAE_Suppress, false, false, 2)
 2099 DIAG(ext_implicit_lib_function_decl, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "implicitly declaring library function '%0' with type %1", 317, SFINAE_Suppress, false, false, 2)
 2100 DIAG(ext_in_class_initializer_float_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "in-class initializer for static data member of type %0 is a GNU extension", 293, SFINAE_Suppress, false, false, 2)
 2101 DIAG(ext_in_class_initializer_float_type_cxx11, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "in-class initializer for static data member of type %0 requires 'constexpr' specifier", 656, SFINAE_Suppress, false, false, 2)
 2102 DIAG(ext_in_class_initializer_non_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension", 286, SFINAE_Suppress, false, false, 2)
 2103 DIAG(ext_incomplete_in_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{|pointer to |reference to }0incomplete type %1 is not allowed in exception specification", 407, SFINAE_Suppress, false, false, 2)
 2104 DIAG(ext_increment_bool, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "ISO C++17 does not allow incrementing expression of type bool", 344, SFINAE_Suppress, false, false, 2)
 2105 DIAG(ext_init_capture, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initialized lambda captures are a C++14 extension", 93, SFINAE_Suppress, false, false, 3)
 2106 DIAG(ext_init_capture_pack, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initialized lambda pack captures are a C++2a extension", 105, SFINAE_Suppress, false, false, 3)
 2107 DIAG(ext_init_list_constant_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "constant expression evaluates to %0 which cannot be narrowed to type %1", 89, SFINAE_SubstitutionFailure, false, false, 2)
 2108 DIAG(ext_init_list_type_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "type %0 cannot be narrowed to %1 in initializer list", 89, SFINAE_SubstitutionFailure, false, false, 2)
 2109 DIAG(ext_init_list_variable_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "non-constant-expression cannot be narrowed from type %0 to %1 in initializer list", 89, SFINAE_SubstitutionFailure, false, false, 2)
 2110 DIAG(ext_initializer_overrides, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initializer %select{partially |}0overrides prior initialization of this subobject", 347, SFINAE_SubstitutionFailure, false, false, 2)
 2111 DIAG(ext_initializer_string_for_char_array_too_long, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initializer-string for char array is too long", 0, SFINAE_Suppress, false, false, 2)
 2112 DIAG(ext_inline_variable, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "inline variables are a C++17 extension", 97, SFINAE_Suppress, false, false, 2)
 2113 DIAG(ext_integer_complement_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C does not support '~' for complex conjugation of %0", 560, SFINAE_Suppress, false, false, 2)
 2114 DIAG(ext_integer_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "complex integer types are a GNU extension", 278, SFINAE_Suppress, false, false, 2)
 2115 DIAG(ext_integer_increment_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C does not support '++'/'--' on complex integer type %0", 560, SFINAE_Suppress, false, false, 2)
 2116 DIAG(ext_internal_in_extern_inline, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static %select{function|variable}0 %1 is used in an inline function with external linkage", 657, SFINAE_Suppress, false, false, 2)
 2117 DIAG(ext_internal_in_extern_inline_quiet, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "static %select{function|variable}0 %1 is used in an inline function with external linkage", 657, SFINAE_Suppress, false, false, 2)
 2118 DIAG(ext_main_returns_nonint, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "return type of 'main' is not 'int'", 388, SFINAE_Suppress, false, false, 2)
 2119 DIAG(ext_main_used, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C++ does not allow 'main' to be used by a program", 387, SFINAE_Suppress, false, false, 2)
 2120 DIAG(ext_many_braces_around_scalar_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "too many braces around scalar initializer", 390, SFINAE_SubstitutionFailure, false, false, 2)
 2121 DIAG(ext_member_redeclared, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "class member cannot be redeclared", 595, SFINAE_Suppress, false, false, 2)
 2122 DIAG(ext_mismatched_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "exception specification in declaration does not match previous declaration", 407, SFINAE_Suppress, false, false, 2)
 2123 DIAG(ext_mismatched_exception_spec_explicit_instantiation, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "exception specification in explicit instantiation does not match instantiated one", 407, SFINAE_Suppress, false, false, 2)
 2124 DIAG(ext_missing_declspec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "declaration specifier missing, defaulting to 'int'", 0, SFINAE_Suppress, false, false, 2)
 2125 DIAG(ext_missing_exception_specification, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 is missing exception specification '%1'", 433, SFINAE_Suppress, false, false, 2)
 2126 DIAG(ext_missing_type_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "type specifier missing, defaults to 'int'", 318, SFINAE_Suppress, false, false, 2)
 2127 DIAG(ext_mixed_decls_code, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C90 forbids mixing declarations and code", 167, SFINAE_Suppress, false, false, 2)
 2128 DIAG(ext_module_import_in_extern_c, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "import of C++ module '%0' appears within extern \"C\" language linkage specification", 450, SFINAE_Suppress, false, false, 13)
 2129 DIAG(ext_module_import_not_at_top_level_noop, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "redundant #include of module '%0' appears within %1", 452, SFINAE_Suppress, false, false, 13)
 2130 DIAG(ext_ms_ambiguous_direct_base, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "accessing inaccessible direct base %0 of %1 is a Microsoft extension", 414, SFINAE_Suppress, false, false, 2)
 2131 DIAG(ext_ms_anonymous_record, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "anonymous %select{structs|unions}0 are a Microsoft extension", 396, SFINAE_Suppress, false, false, 2)
 2132 DIAG(ext_ms_cast_fn_obj, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static_cast between pointer-to-function and pointer-to-object is a Microsoft extension", 397, SFINAE_Suppress, false, false, 2)
 2133 DIAG(ext_ms_delayed_template_argument, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "using the undeclared type %0 as a default template argument is a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2134 DIAG(ext_ms_deref_template_argument, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "non-type template argument containing a dereference operation is a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2135 DIAG(ext_ms_explicit_constructor_call, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit constructor calls are a Microsoft extension", 409, SFINAE_Suppress, false, false, 2)
 2136 DIAG(ext_ms_forward_ref_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "forward references to 'enum' types are a Microsoft extension", 405, SFINAE_Suppress, false, false, 2)
 2137 DIAG(ext_ms_impcast_fn_obj, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension", 397, SFINAE_Suppress, false, false, 2)
 2138 DIAG(ext_ms_missing_exception_specification, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 is missing exception specification '%1'", 407, SFINAE_Suppress, false, false, 2)
 2139 DIAG(ext_ms_template_spec_redecl_out_of_scope, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 not in %select{a namespace enclosing %2|class %2 or an enclosing namespace}3 is a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2140 DIAG(ext_ms_template_type_arg_missing_typename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2141 DIAG(ext_ms_using_declaration_inaccessible, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "using declaration referring to inaccessible member '%0' (which refers to accessible member '%1') is a Microsoft compatibility extension", 423, SFINAE_AccessControl, false, false, 2)
 2142 DIAG(ext_mutable_reference, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'mutable' on a reference type is a Microsoft extension", 416, SFINAE_Suppress, false, false, 2)
 2143 DIAG(ext_nested_name_member_ref_lookup_ambiguous, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "lookup of %0 in member access expression is ambiguous; using member of %1", 21, SFINAE_Suppress, false, false, 2)
 2144 DIAG(ext_nested_name_spec_is_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of enumeration in a nested name specifier is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2145 DIAG(ext_nested_pointer_qualifier_mismatch, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers in nested pointer types", 333, SFINAE_Suppress, false, false, 2)
 2146 DIAG(ext_new_paren_array_nonconst, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "when type is in parentheses, array cannot have dynamic size", 0, SFINAE_Suppress, false, false, 2)
 2147 DIAG(ext_no_declarators, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "declaration does not declare anything", 432, SFINAE_Suppress, false, false, 2)
 2148 DIAG(ext_no_named_members_in_struct_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%select{struct|union}0 without named members is a GNU extension", 283, SFINAE_Suppress, false, false, 2)
 2149 DIAG(ext_nonclass_type_friend, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "non-class friend type %0 is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2150 DIAG(ext_noreturn_main, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'main' is not allowed to be declared _Noreturn", 387, SFINAE_Suppress, false, false, 2)
 2151 DIAG(ext_offsetof_non_pod_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "offset of on non-POD type %0", 365, SFINAE_Suppress, false, false, 2)
 2152 DIAG(ext_offsetof_non_standardlayout_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "offset of on non-standard-layout type %0", 365, SFINAE_Suppress, false, false, 2)
 2153 DIAG(ext_omp_loop_not_canonical_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')", 535, SFINAE_Suppress, false, false, 11)
 2154 DIAG(ext_opencl_ext_vector_type_rgba_selector, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "vector component name '%0' is an OpenCL version 2.2 feature", 533, SFINAE_Suppress, false, false, 2)
 2155 DIAG(ext_operator_new_delete_declared_inline, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "replacement function %0 cannot be declared 'inline'", 351, SFINAE_Suppress, false, false, 2)
 2156 DIAG(ext_out_of_line_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "out-of-line declaration of a member must be a definition", 539, SFINAE_Suppress, false, false, 2)
 2157 DIAG(ext_out_of_line_qualified_id_type_names_constructor, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++ specifies that qualified reference to %0 is a constructor name rather than a %select{template name|type}1 in this context, despite preceding %select{'typename'|'template'}2 keyword", 348, SFINAE_SubstitutionFailure, false, false, 2)
 2158 DIAG(ext_override_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "exception specification of overriding function is more lax than base version", 407, SFINAE_Suppress, false, false, 2)
 2159 DIAG(ext_ovl_ambiguous_oper_binary_reversed, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++20 considers use of overloaded operator '%0' (with operand types %1 and %2) to be ambiguous despite there being a unique best viable function", 22, SFINAE_SubstitutionFailure, false, false, 2)
 2160 DIAG(ext_param_default_argument_redefinition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "redefinition of default argument", 402, SFINAE_Suppress, false, false, 2)
 2161 DIAG(ext_param_not_declared, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "parameter %0 was not declared, defaulting to type 'int'", 560, SFINAE_Suppress, false, false, 2)
 2162 DIAG(ext_param_promoted_not_compatible_with_prototype, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%diff{promoted type $ of K&R function parameter is not compatible with the parameter type $|promoted type of K&R function parameter is not compatible with parameter type}0,1 declared in a previous prototype", 375, SFINAE_Suppress, false, false, 2)
 2163 DIAG(ext_partial_spec_not_more_specialized_than_primary, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{class|variable}0 template partial specialization is not more specialized than the primary template", 367, SFINAE_Suppress, false, false, 2)
 2164 DIAG(ext_partial_specs_not_deducible, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{class|variable}0 template partial specialization contains %select{a template parameter|template parameters}1 that cannot be deduced; this partial specialization will never be used", 760, SFINAE_Suppress, false, false, 2)
 2165 DIAG(ext_plain_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "plain '_Complex' requires a type specifier; assuming '_Complex double'", 0, SFINAE_Suppress, false, false, 2)
 2166 DIAG(ext_pointer_to_const_ref_member_on_rvalue, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension", 105, SFINAE_SubstitutionFailure, false, false, 2)
 2168 DIAG(ext_pseudo_dtor_on_void, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pseudo-destructors on type void are a Microsoft extension", 424, SFINAE_Suppress, false, false, 2)
 2169 DIAG(ext_pure_function_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function definition with pure-specifier is a Microsoft extension", 417, SFINAE_Suppress, false, false, 2)
 2170 DIAG(ext_redefinition_of_typedef, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "redefinition of typedef %0 is a C11 feature", 714, SFINAE_Suppress, false, false, 2)
 2171 DIAG(ext_register_storage_class, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "ISO C++17 does not allow 'register' storage class specifier", 599, SFINAE_Suppress, false, false, 2)
 2172 DIAG(ext_retained_language_linkage, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "friend function %0 retaining previous language linkage is an extension", 608, SFINAE_Suppress, false, false, 2)
 2173 DIAG(ext_return_has_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{void function|void method|constructor|destructor}1 %0 should not return a value", 612, SFINAE_Suppress, false, false, 2)
 2174 DIAG(ext_return_has_void_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "void %select{function|method|block}1 %0 should not return void expression", 560, SFINAE_Suppress, false, false, 2)
 2175 DIAG(ext_return_missing_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "non-void %select{function|method}1 %0 should return a value", 612, SFINAE_Suppress, false, false, 2)
 2176 DIAG(ext_rvalue_to_reference_access_ctor, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C++98 requires an accessible copy constructor for class %2 when binding a reference to a temporary; was %select{private|protected}0", 60, SFINAE_AccessControl, false, false, 2)
 2177 DIAG(ext_rvalue_to_reference_temp_copy_no_viable, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "no viable constructor %select{copying variable|copying parameter|returning object|initializing statement expression result|throwing object|copying member subobject|copying array element|allocating object|copying temporary|initializing base subobject|initializing vector element|capturing value}0 of type %1; C++98 requires a copy constructor when binding a reference to a temporary", 60, SFINAE_Suppress, false, false, 2)
 2178 DIAG(ext_sizeof_alignof_function_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "invalid application of '%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align|__alignof}0' to a function type", 563, SFINAE_Suppress, false, false, 2)
 2179 DIAG(ext_sizeof_alignof_void_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "invalid application of '%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align|__alignof}0' to a void type", 563, SFINAE_Suppress, false, false, 2)
 2180 DIAG(ext_standalone_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'%0' is not permitted on a declaration of a type", 432, SFINAE_Suppress, false, false, 2)
 2181 DIAG(ext_star_this_lambda_capture_cxx17, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "capture of '*this' by copy is a C++17 extension", 97, SFINAE_Suppress, false, false, 3)
 2182 DIAG(ext_static_data_member_in_union, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static data member %0 in union is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2183 DIAG(ext_static_non_static, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "redeclaring non-static %0 as static is a Microsoft extension", 418, SFINAE_Suppress, false, false, 2)
 2184 DIAG(ext_static_out_of_line, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'static' can only be specified inside the class definition", 420, SFINAE_Suppress, false, false, 2)
 2185 DIAG(ext_string_literal_operator_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "string literal operator templates are a GNU extension", 294, SFINAE_Suppress, false, false, 2)
 2186 DIAG(ext_subscript_non_lvalue, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C90 does not allow subscripting non-lvalue array", 560, SFINAE_Suppress, false, false, 2)
 2187 DIAG(ext_template_arg_extra_parens, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "address non-type template argument cannot be surrounded by parentheses", 0, SFINAE_Suppress, false, false, 2)
 2188 DIAG(ext_template_arg_local_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template argument uses local type %0", 381, SFINAE_Suppress, false, false, 2)
 2189 DIAG(ext_template_arg_object_internal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "non-type template argument referring to %select{function|object}0 %1 with internal linkage is a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2190 DIAG(ext_template_arg_unnamed_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template argument uses unnamed type", 742, SFINAE_Suppress, false, false, 2)
 2191 DIAG(ext_template_outside_of_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'template' keyword outside of a template", 85, SFINAE_Suppress, false, false, 2)
 2192 DIAG(ext_template_param_shadow, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "declaration of %0 shadows template parameter", 420, SFINAE_Suppress, false, false, 2)
 2193 DIAG(ext_template_parameter_default_in_function_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default template arguments for a function template are a C++11 extension", 85, SFINAE_Suppress, false, false, 2)
 2194 DIAG(ext_typecheck_addrof_temporary, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "taking the address of a temporary object of type %0", 13, SFINAE_Suppress, false, false, 2)
 2195 DIAG(ext_typecheck_addrof_void, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C forbids taking the address of an expression of type 'void'", 560, SFINAE_Suppress, false, false, 2)
 2197 DIAG(ext_typecheck_cast_nonscalar, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C99 forbids casting nonscalar type %0 to the same type", 560, SFINAE_Suppress, false, false, 2)
 2198 DIAG(ext_typecheck_cast_to_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "cast to union type is a GNU extension", 295, SFINAE_Suppress, false, false, 2)
 2199 DIAG(ext_typecheck_comparison_of_distinct_pointers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "comparison of distinct pointer types%diff{ ($ and $)|}0,1", 136, SFINAE_Suppress, false, false, 2)
 2200 DIAG(ext_typecheck_comparison_of_fptr_to_void, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "equality comparison between function pointer and void pointer (%0 and %1)", 560, SFINAE_Suppress, false, false, 2)
 2201 DIAG(ext_typecheck_comparison_of_pointer_integer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "comparison between pointer and integer (%0 and %1)", 566, SFINAE_Suppress, false, false, 2)
 2202 DIAG(ext_typecheck_cond_incompatible_operands, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible operand types (%0 and %1)", 0, SFINAE_Suppress, false, false, 2)
 2203 DIAG(ext_typecheck_cond_incompatible_pointers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pointer type mismatch%diff{ ($ and $)|}0,1", 569, SFINAE_Suppress, false, false, 2)
 2204 DIAG(ext_typecheck_cond_one_void, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C99 forbids conditional expressions with only one void side", 560, SFINAE_Suppress, false, false, 2)
 2205 DIAG(ext_typecheck_cond_pointer_integer_mismatch, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pointer/integer type mismatch in conditional expression%diff{ ($ and $)|}0,1", 139, SFINAE_Suppress, false, false, 2)
 2206 DIAG(ext_typecheck_convert_discards_qualifiers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers", 333, SFINAE_Suppress, false, false, 2)
 2207 DIAG(ext_typecheck_convert_incompatible_function_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible function pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 329, SFINAE_Suppress, false, false, 2)
 2208 DIAG(ext_typecheck_convert_incompatible_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 332, SFINAE_Suppress, false, false, 2)
 2209 DIAG(ext_typecheck_convert_incompatible_pointer_sign, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 converts between pointers to integer types with different sign", 567, SFINAE_Suppress, false, false, 2)
 2210 DIAG(ext_typecheck_convert_int_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible integer to pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 353, SFINAE_SubstitutionFailure, false, false, 26)
 2211 DIAG(ext_typecheck_convert_pointer_int, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible pointer to integer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 353, SFINAE_Suppress, false, false, 26)
 2212 DIAG(ext_typecheck_convert_pointer_void_func, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 converts between void pointer and function pointer", 560, SFINAE_Suppress, false, false, 2)
 2213 DIAG(ext_typecheck_decl_incomplete_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "tentative definition of variable with internal linkage has incomplete non-array type %0", 702, SFINAE_Suppress, false, false, 2)
 2214 DIAG(ext_typecheck_indirection_through_void_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++ does not allow indirection on operand of type %0", 795, SFINAE_Suppress, false, false, 2)
 2215 DIAG(ext_typecheck_ordered_comparison_of_function_pointers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ordered comparison of function pointers (%0 and %1)", 538, SFINAE_Suppress, false, false, 2)
 2216 DIAG(ext_typecheck_ordered_comparison_of_pointer_and_zero, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ordered comparison between pointer and zero (%0 and %1) is an extension", 560, SFINAE_Suppress, false, false, 2)
 2217 DIAG(ext_typecheck_ordered_comparison_of_pointer_integer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ordered comparison between pointer and integer (%0 and %1)", 0, SFINAE_Suppress, false, false, 2)
 2218 DIAG(ext_typecheck_zero_array_size, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "zero size arrays are an extension", 803, SFINAE_Suppress, false, false, 2)
 2219 DIAG(ext_typedef_without_a_name, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "typedef requires a name", 432, SFINAE_Suppress, false, false, 2)
 2220 DIAG(ext_typename_missing, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "missing 'typename' prior to dependent type name '%0%1'", 715, SFINAE_Suppress, false, false, 2)
 2221 DIAG(ext_typename_outside_of_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'typename' occurs outside of a template", 85, SFINAE_Suppress, false, false, 2)
 2222 DIAG(ext_undeclared_unqual_id_with_dependent_base, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of undeclared identifier %0; unqualified lookup into dependent bases of class template %1 is a Microsoft extension", 420, SFINAE_Suppress, false, false, 2)
 2223 DIAG(ext_undefined_internal_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C++ requires a definition in this translation unit for %select{function|variable}0 %q1 because its type does not have linkage", 724, SFINAE_Suppress, false, false, 2)
 2224 DIAG(ext_unelaborated_friend_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unelaborated friend declaration is a C++11 extension; specify '%select{struct|interface|union|class|enum}0' to befriend %1", 85, SFINAE_Suppress, false, false, 2)
 2225 DIAG(ext_union_member_of_reference_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "union member %0 has reference type %1, which is a Microsoft extension", 421, SFINAE_Suppress, false, false, 2)
 2226 DIAG(ext_use_out_of_scope_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of out-of-scope declaration of %0%select{| whose type is not compatible with that of an implicit declaration}1", 540, SFINAE_Suppress, false, false, 2)
 2227 DIAG(ext_using_undefined_std, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "using directive refers to implicitly-defined namespace 'std'", 0, SFINAE_Suppress, false, false, 2)
 2228 DIAG(ext_variable_sized_type_in_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "field %0 with variable sized type %1 not at the end of a struct or class is a GNU extension", 296, SFINAE_Suppress, false, false, 2)
 2229 DIAG(ext_variable_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "variable templates are a C++14 extension", 93, SFINAE_Suppress, false, false, 2)
 2230 DIAG(ext_variadic_main, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'main' is not allowed to be declared variadic", 387, SFINAE_Suppress, false, false, 2)
 2231 DIAG(ext_vla, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variable length arrays are a C99 feature", 794, SFINAE_Suppress, false, false, 2)
 2232 DIAG(ext_vla_folded_to_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variable length array folded to constant array as an extension", 286, SFINAE_Suppress, false, false, 2)
 2233 DIAG(ext_wchar_t_sign_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "'%0' cannot be signed or unsigned", 644, SFINAE_Suppress, false, false, 2)
 3117 DIAG(warn_format_conversion_argument_type_mismatch_pedantic, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "format specifies type %0 but the argument has %select{type|underlying type}2 %1", 256, SFINAE_Suppress, false, false, 2)
 3152 DIAG(warn_illegal_constant_array_size, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "size of static array must be an integer constant expression", 560, SFINAE_Suppress, false, false, 2)
 3224 DIAG(warn_kern_is_method, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "kernel function %0 is a member function; this may not be accepted by nvcc", 156, SFINAE_Suppress, false, false, 2)
tools/clang/lib/Basic/DiagnosticIDs.cpp
  355       getBuiltinDiagClass(DiagID) != CLASS_EXTENSION)