aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.0/contrib/check_warning_flags.sh
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.0/contrib/check_warning_flags.sh')
-rwxr-xr-xgcc-4.4.0/contrib/check_warning_flags.sh180
1 files changed, 0 insertions, 180 deletions
diff --git a/gcc-4.4.0/contrib/check_warning_flags.sh b/gcc-4.4.0/contrib/check_warning_flags.sh
deleted file mode 100755
index eb5383273..000000000
--- a/gcc-4.4.0/contrib/check_warning_flags.sh
+++ /dev/null
@@ -1,180 +0,0 @@
-#! /bin/sh
-#
-# Check that the warning flags documented in invoke.texi match up
-# with what the compiler accepts.
-#
-# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
-# Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
-#
-# This script is Free Software, and it can be copied, distributed and
-# modified as defined in the GNU General Public License. A copy of
-# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
-#
-# Call this script as
-# check_warning_flags.sh path/to/invoke.texi
-# with CC set to the compiler to be tested.
-# The script scribbles in the current directory.
-
-progname=`echo "$0" | sed 's,.*/,,'`
-usage ()
-{
- echo "usage: $progname path/to/gcc/doc"
- echo "set \$CC to the compiler to be checked"
- exit 1
-}
-
-ret=0
-LC_ALL=C
-export LC_ALL
-: ${CC=gcc}
-test $# = 1 || usage
-gcc_docdir=$1
-invoke_texi=$gcc_docdir/invoke.texi
-test -r "$invoke_texi" || {
- echo "$progname: error: cannot read '$invoke_texi'" >&2
- usage
-}
-filebase=check_warning_flags_file$$
-stderr=check_warning_flags_stderr$$
-
-remove_problematic_flags='
- /-Wlarger-than-/d
- /-Wframe-larger-than/d
- /-Wdisallowed-function-list/d
- /-W[alp],/d
- /-Werror/d
- /-Wpadded/d
- /pedantic-ms-format/d
- /=/d'
-
-# Ensure that indexed warnings are accepted.
-set x `sed '/^@opindex W/{
- s/^@opindex /-/
- '"$remove_problematic_flags"'
- /-W[alp]$/d
- p
-}
-d' <"$invoke_texi"`
-shift
-: >$filebase.c
-$CC -c $filebase.c "$@" 2>&1 |
- grep -v 'command line option.*is valid for.*but not for' >$stderr
-if test -s $stderr; then
- echo "options listed in @opindex but not accepted by the compiler:" >&2
- cat $stderr >&2
- ret=1
-fi
-rm -f $filebase.c $stderr
-
-# Check documentation of warning options.
-for lang in c c++ objc obj-c++; do
- case $lang in
- c) ext=c; langmatch='[^-]C[^+].*only' ;;
- c++) ext=C; langmatch='[^-]C++.*only' ;;
- objc) ext=m; langmatch='Objective-C[^+].*only' ;;
- obj-c++) ext=M; langmatch='Objective-C++.*only' ;;
- esac
- file=$filebase.$ext
- : >$file
- $CC -c $file 2>$stderr
- if grep 'not installed on this system' $stderr >/dev/null ||
- grep 'installation problem, cannot exec' $stderr >/dev/null ||
- grep 'error trying to exec' $stderr >/dev/null
- then
- echo "$progname: $CC is not configured for language $lang, skipping checks" >&2
- rm -f $file $filebase.o $filebase.obj $stderr
- continue
- fi
-
- # Verify good warning flags.
- set x `sed '
- t a
- :a
- /^@item -W/{
- /'"$langmatch"'/b x
- / only)/d
- b x
- }
- d
- :x
- '"$remove_problematic_flags"'
- s/^@item //
- s/ .*//
- ' <"$invoke_texi"`
- shift
- $CC -c $file -O "$@" 2>$stderr
- if test -s $stderr; then
- echo failures: >&2
- cat $stderr >&2
- ret=1
- fi
-
- # Verify bad warning flags.
- set x `sed '
- t a
- :a
- /^@item -W/{
- / only)/!d
- /'"$langmatch"'/d
- b x
- }
- d
- :x
- '"$remove_problematic_flags"'
- s/^@item //
- s/ .*//
- ' <"$invoke_texi"`
- shift
- $CC -c $file -O "$@" 2>$stderr
- # cat $stderr >&2
- test $# = `grep 'command line option.*valid.*but not for' <$stderr | wc -l` || {
- for warning
- do
- grep "command line option.*$warning.*valid" <$stderr >&2 ||
- echo "valid for $lang but not annotated as such: $warning"
- done
- ret=1
- }
- 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