From 802e3f8c818a594430066173ab0beb8bde96a74a Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Sun, 9 Mar 2008 17:43:10 +0000 Subject: [PATCH] c.opt (Wsynth): Deprecate. gcc/ * c.opt (Wsynth): Deprecate. * doc/invoke.texi (Option Summary, Warning Options): Document -Wno-format-contains-nul. gcc/fortran/ * invoke.texi (Error and Warning Options): Document -Wline-truncation. contrib/ * check_warning_flags.sh: Instead of invoke.texi, take the path to the doc directory as argument. Check that warnings listed in 'gcc --help' are accepted by the compiler, and listed in the manuals. From-SVN: r133059 --- contrib/ChangeLog | 7 ++++++ contrib/check_warning_flags.sh | 45 ++++++++++++++++++++++++++++++++-- gcc/ChangeLog | 6 +++++ gcc/c.opt | 2 +- gcc/doc/invoke.texi | 8 +++++- gcc/fortran/ChangeLog | 5 ++++ gcc/fortran/invoke.texi | 5 ++++ 7 files changed, 74 insertions(+), 4 deletions(-) diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 15656b99652..3f897e8e84a 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,10 @@ +2008-03-09 Ralf Wildenhues + + * check_warning_flags.sh: Instead of invoke.texi, take the path + to the doc directory as argument. Check that warnings listed in + 'gcc --help' are accepted by the compiler, and listed in the + manuals. + 2008-03-06 Tom Tromey * patch_tester.sh (usage): Watermark is not lexicographic. diff --git a/contrib/check_warning_flags.sh b/contrib/check_warning_flags.sh index 95640f7758d..fcd0f37e105 100755 --- a/contrib/check_warning_flags.sh +++ b/contrib/check_warning_flags.sh @@ -18,7 +18,7 @@ progname=`echo "$0" | sed 's,.*/,,'` usage () { - echo "usage: $progname path/to/invoke.texi" + echo "usage: $progname path/to/gcc/doc" echo "set \$CC to the compiler to be checked" exit 1 } @@ -28,7 +28,8 @@ LC_ALL=C export LC_ALL : ${CC=gcc} test $# = 1 || usage -invoke_texi=$1 +gcc_docdir=$1 +invoke_texi=$gcc_docdir/invoke.texi test -r "$invoke_texi" || { echo "$progname: error: cannot read '$invoke_texi'" >&2 usage @@ -133,4 +134,44 @@ for lang in c c++ objc obj-c++; do } rm -f $file $filebase.o $filebase.obj $stderr done + + +remove_problematic_help_flags=' + /^W$/d + /^W[alp]$/d + /^Werror-implicit-function-declaration$/d + /^Wsynth$/d + /-$/d + /=/d' +help_flags=` + $CC --help -v 2>/dev/null | tr ' ' '\n' | + sed -n ' + b a + :a + s/^-\(W[^<,]*\).*/\1/ + t x + d + :x + '"$remove_problematic_help_flags"' + p' | sort -u` +: >$filebase.c +for flag in $help_flags; do + $CC -c $filebase.c -$flag 2>/dev/null || { + echo "warning -$flag not supported" >&2 + ret=1 + } + grep "@item.*$flag" $gcc_docdir/../*/*.texi >/dev/null || { + # For @item, we are satisfied with either -Wfoo or -Wno-foo. + inverted_flag=`echo "$flag" | sed ' + s/^Wno-/W/ + t + s/^W/Wno-/'` + grep "@item.*$inverted_flag" $gcc_docdir/../*/*.texi >/dev/null || { + echo "warning -$flag not documented in $gcc_docdir/../*/*.texi" >&2 + ret=1 + } + } +done +rm -f $filebase.c $filebase.o + exit $ret diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8265c51c2b4..6490647f478 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-03-09 Ralf Wildenhues + + * c.opt (Wsynth): Deprecate. + * doc/invoke.texi (Option Summary, Warning Options): Document + -Wno-format-contains-nul. + 2008-03-09 Uros Bizjak PR target/35496 diff --git a/gcc/c.opt b/gcc/c.opt index d3f81b0e1c7..dd9013e1c37 100644 --- a/gcc/c.opt +++ b/gcc/c.opt @@ -423,7 +423,7 @@ Warn if type signatures of candidate methods do not match exactly Wsynth C++ ObjC++ Var(warn_synth) Warning -Warn when synthesis behavior differs from Cfront +Deprecated. This switch has no effect Wsystem-headers C ObjC C++ ObjC++ Warning diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 411678c7afa..304525dcccf 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -235,7 +235,7 @@ Objective-C and Objective-C++ Dialects}. -Wempty-body -Wno-endif-labels @gol -Werror -Werror=* @gol -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol --Wno-format-extra-args -Wformat-nonliteral @gol +-Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol -Wformat-security -Wformat-y2k @gol -Wframe-larger-than=@var{len} -Wignored-qualifiers @gol -Wimplicit -Wimplicit-function-declaration -Wimplicit-int @gol @@ -2811,6 +2811,12 @@ aspects of format checking, the options @option{-Wformat-y2k}, If @option{-Wformat} is specified, also warn about @code{strftime} formats which may yield only a two-digit year. +@item -Wno-format-contains-nul +@opindex Wno-format-contains-nul +@opindex Wformat-contains-nul +If @option{-Wformat} is specified, do not warn about format strings that +contain NUL bytes. + @item -Wno-format-extra-args @opindex Wno-format-extra-args @opindex Wformat-extra-args diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 83561087a3b..72bf5129c44 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2008-03-09 Ralf Wildenhues + + * invoke.texi (Error and Warning Options): Document + -Wline-truncation. + 2008-03-08 Francois-Xavier Coudert PR fortran/34956 diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 64e50701d54..2bac12c7962 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -456,6 +456,11 @@ that initiated the continuation. @cindex warnings, character truncation Warn when a character assignment will truncate the assigned string. +@item -Wline-truncation +@opindex @code{Wline-truncation} +@cindex warnings, line truncation +Warn when a source code line will be truncated. + @item -Wconversion @opindex @code{Wconversion} @cindex warnings, conversion