def : DiagGroup<"conversion">;
def : DiagGroup<"declaration-after-statement">;
def ExtraTokens : DiagGroup<"extra-tokens">;
-def : DiagGroup<"format-security">;
-def : DiagGroup<"format=2">;
-def : DiagGroup<"format">;
+
+def Format : DiagGroup<"format">;
+def Format2 : DiagGroup<"format=2", [Format]>;
+def : DiagGroup<"format-extra-args", [Format]>;
+def FormatNonLiteral : DiagGroup<"format-nonliteral", [Format]>;
+def FormatSecurity : DiagGroup<"format-security", [Format]>;
+def : DiagGroup<"format-y2k", [Format]>;
+
def FourByteMultiChar : DiagGroup<"four-char-constants">;
def MultiChar : DiagGroup<"multichar">;
def : DiagGroup<"nested-externs">;
def : DiagGroup<"newline-eof">;
-def : DiagGroup<"format-y2k">;
def : DiagGroup<"long-long">;
def : DiagGroup<"missing-field-initializers">;
def : DiagGroup<"nonportable-cfstrings">;
def Most : DiagGroup<"most", [
Comment,
+ Format,
Implicit,
MultiChar,
Switch,
"array types cannot be value-initialized">;
def warn_printf_not_string_constant : Warning<
"format string is not a string literal (potentially insecure)">,
- InGroup<DiagGroup<"format-nonliteral">>;
+ InGroup<FormatNonLiteral>, DefaultIgnore;
def err_unexpected_interface : Error<
"unexpected interface name %0: expected expression">;