def : DiagGroup<"invalid-pch">;
def LiteralRange : DiagGroup<"literal-range">;
def LocalTypeTemplateArgs : DiagGroup<"local-type-template-args">;
-def : DiagGroup<"main">;
+def Main : DiagGroup<"main">;
def MissingBraces : DiagGroup<"missing-braces">;
def MissingDeclarations: DiagGroup<"missing-declarations">;
def : DiagGroup<"missing-format-attribute">;
/// main()
// static/inline main() are not errors in C, just in C++.
def warn_unusual_main_decl : Warning<"'main' should not be declared "
- "%select{static|inline|static or inline}0">;
+ "%select{static|inline|static or inline}0">,
+ InGroup<Main>;
def err_unusual_main_decl : Error<"'main' is not allowed to be declared "
- "%select{static|inline|static or inline}0">;
-def err_main_template_decl : Error<"'main' cannot be a template">;
-def err_main_returns_nonint : Error<"'main' must return 'int'">;
+ "%select{static|inline|static or inline}0">,
+ InGroup<Main>;
+def err_main_template_decl : Error<"'main' cannot be a template">,
+ InGroup<Main>;
+def err_main_returns_nonint : Error<"'main' must return 'int'">,
+ InGroup<Main>;
def err_main_surplus_args : Error<"too many parameters (%0) for 'main': "
- "must be 0, 2, or 3">;
-def warn_main_one_arg : Warning<"only one parameter on 'main' declaration">;
+ "must be 0, 2, or 3">,
+ InGroup<Main>;
+def warn_main_one_arg : Warning<"only one parameter on 'main' declaration">,
+ InGroup<Main>;
def err_main_arg_wrong : Error<"%select{first|second|third|fourth}0 "
"parameter of 'main' (%select{argument count|argument array|environment|"
- "platform-specific data}0) must be of type %1">;
+ "platform-specific data}0) must be of type %1">,
+ InGroup<Main>;
/// parser diagnostics
def ext_typedef_without_a_name : ExtWarn<"typedef requires a name">,
The list of warnings below should NEVER grow. It should gradually shrink to 0.
-CHECK: Warnings without flags (316):
+CHECK: Warnings without flags (314):
CHECK-NEXT: auto_storage_class
CHECK-NEXT: backslash_newline_space
CHECK-NEXT: charize_microsoft_ext
CHECK-NEXT: warn_invalid_asm_cast_lvalue
CHECK-NEXT: warn_ivar_use_hidden
CHECK-NEXT: warn_label_attribute_not_unused
-CHECK-NEXT: warn_main_one_arg
CHECK-NEXT: warn_many_braces_around_scalar_init
CHECK-NEXT: warn_maynot_respond
CHECK-NEXT: warn_member_extra_qualification
CHECK-NEXT: warn_unkwown_analyzer_checker
CHECK-NEXT: warn_unterminated_char
CHECK-NEXT: warn_unterminated_string
-CHECK-NEXT: warn_unusual_main_decl
CHECK-NEXT: warn_use_out_of_scope_declaration
CHECK-NEXT: warn_weak_identifier_undeclared
CHECK-NEXT: warn_weak_import