From 941153afcd965c9437b268c5a9320b506df4d882 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 29 Apr 2009 04:15:07 +0000 Subject: [PATCH] tweak warning options to be more like gcc: 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. llvm-svn: 70362 --- clang/include/clang/Basic/DiagnosticGroups.td | 13 +++++++++---- clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 +- clang/test/Sema/format-strings.c | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index 6ed8afb0ff65..4aff9340f51e 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -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, diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 306fcaccfa5c..88607f3a3ba8 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -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>; + InGroup, DefaultIgnore; def err_unexpected_interface : Error< "unexpected interface name %0: expected expression">; diff --git a/clang/test/Sema/format-strings.c b/clang/test/Sema/format-strings.c index cbeadc20b82c..c7392c1f0c93 100644 --- a/clang/test/Sema/format-strings.c +++ b/clang/test/Sema/format-strings.c @@ -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