]> granicus.if.org Git - clang/commitdiff
tweak warning options to be more like gcc:
authorChris Lattner <sabre@nondot.org>
Wed, 29 Apr 2009 04:15:07 +0000 (04:15 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 29 Apr 2009 04:15:07 +0000 (04:15 +0000)
1. All all variants of -Wformat*, make them imply -Wformat.  GCC warns
   if you use -Wformatfoo without -Wformat.  We just make one imply the
   other.
2. Make -Wformat-nonliteral default to off, like gcc.  It is an incredible
   nuisance.
3. Accept but currently ignore -Wformat-extra-args.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70362 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticGroups.td
include/clang/Basic/DiagnosticSemaKinds.td
test/Sema/format-strings.c

index 6ed8afb0ff65876266bd403a19c11379fe7b1dfb..4aff9340f51e3ea154564d4bc7c3d259410bb8e1 100644 (file)
@@ -31,9 +31,14 @@ def Comment : DiagGroup<"comment">;
 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">;
 
 
@@ -47,7 +52,6 @@ def : DiagGroup<"missing-noreturn">;
 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">;
@@ -95,6 +99,7 @@ def Extra : DiagGroup<"extra">;
 
 def Most : DiagGroup<"most", [
     Comment,
+    Format,
     Implicit,
     MultiChar,
     Switch,
index 306fcaccfa5c2d5a109b79a857593f3fd842f2aa..88607f3a3ba890a90ce4a11ed63956ae1c42158f 100644 (file)
@@ -1059,7 +1059,7 @@ def err_value_init_for_array_type : Error<
   "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">;
index cbeadc20b82cac0e34b68dd8748f532f5bbab461..c7392c1f0c9368762fe560bee344aae72f5ded9e 100644 (file)
@@ -1,4 +1,4 @@
-// RUN: clang-cc -fsyntax-only -verify %s
+// RUN: clang-cc -fsyntax-only -verify -Wformat-nonliteral %s
 
 // Define this to get vasprintf on Linux
 #define _GNU_SOURCE