# HG changeset patch # User Simon Josefsson # Date 1226940314 -3600 # Node ID 394df39d3f3e9ffcc00a621b8527ce850cb340f3 # Parent 18ab43a9b112e8c87b86bf94de93cbeb2f03ac7a warnings: Add gl_WARN_COMPLEMENT and gl_WARN_SUPPORTED. diff -r 18ab43a9b112 -r 394df39d3f3e ChangeLog --- a/ChangeLog Mon Nov 17 13:02:25 2008 +0100 +++ b/ChangeLog Mon Nov 17 17:45:14 2008 +0100 @@ -1,3 +1,7 @@ +2008-11-17 Simon Josefsson + + * m4/warnings.m4: Add gl_WARN_COMPLEMENT and gl_WARN_SUPPORTED. + 2008-11-17 Bruce Korb * modules/parse-duration-tests: New file. diff -r 18ab43a9b112 -r 394df39d3f3e m4/warnings.m4 --- a/m4/warnings.m4 Mon Nov 17 13:02:25 2008 +0100 +++ b/m4/warnings.m4 Mon Nov 17 17:45:14 2008 +0100 @@ -42,3 +42,87 @@ AS_VAR_POPDEF([gl_Warn])dnl m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])], [])])dnl ]) + +# gl_WARN_SUPPORTED(VARIABLE) +# ---------------------- +# Add all supported warning parameters to variable VARIABLE +# using gl_WARN_ADD. +AC_DEFUN([gl_WARN_SUPPORTED], +[ + # List of all supported warning parameters according to GCC 4.3.2 manual. + for w in \ + -Wall \ + -W \ + -Wformat-y2k \ + -Wformat-nonliteral \ + -Wformat-security \ + -Winit-self \ + -Wmissing-include-dirs \ + -Wswitch-default \ + -Wswitch-enum \ + -Wunused \ + -Wunknown-pragmas \ + -Wstrict-aliasing \ + -Wstrict-overflow \ + -Wsystem-headers \ + -Wfloat-equal \ + -Wtraditional \ + -Wtraditional-conversion \ + -Wdeclaration-after-statement \ + -Wundef \ + -Wshadow \ + -Wunsafe-loop-optimizations \ + -Wpointer-arith \ + -Wbad-function-cast \ + -Wc++-compat \ + -Wcast-qual \ + -Wcast-align \ + -Wwrite-strings \ + -Wconversion \ + -Wsign-conversion \ + -Wlogical-op \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wmissing-noreturn \ + -Wmissing-format-attribute \ + -Wpacked \ + -Wpadded \ + -Wredundant-decls \ + -Wnested-externs \ + -Wunreachable-code \ + -Winline \ + -Winvalid-pch \ + -Wlong-long \ + -Wvla \ + -Wvolatile-register-var \ + -Wdisabled-optimization \ + -Wstack-protector \ + -Woverlength-strings \ + ; do + gl_WARN_ADD($w, $1) + done +]) + +# gl_WARN_COMPLEMENT(OUTVAR, LISTVAR, REMOVEVAR) +# ---------------------- +# Copy LISTVAR to OUTVAR except for the entries in REMOVEVAR. +# Elements separated by whitespace. In set logic terms, the function +# does OUTVAR = LISTVAR \ REMOVEVAR. +AC_DEFUN([gl_WARN_COMPLEMENT], +[ + FOO= + set -- "$2" + for w in $_; do + case "$3" in + *" $w "* | *" $w" | "$w "*) + ;; + *) + FOO="$FOO $w" + ;; + esac + done + $1=$FOO +])