Reported by Paul Eggert. Common usage is to do: for w in $list; do gl_WARN_ADD([$w]) done
which means we have to be polymorphic to shell code (similar to how AS_VAR_SET is polymorphic). * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Make polymorphic. Signed-off-by: Eric Blake <[email protected]> --- ChangeLog | 5 +++++ m4/warnings.m4 | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5416541..fc4fb31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-08-15 Eric Blake <[email protected]> + + warnings: extend -Wno-foo handling to work through shell vars + * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Make polymorphic. + 2013-08-14 Eric Blake <[email protected]> warnings: check -Wfoo rather than -Wno-foo diff --git a/m4/warnings.m4 b/m4/warnings.m4 index afde4c5..cbe08b5 100644 --- a/m4/warnings.m4 +++ b/m4/warnings.m4 @@ -1,4 +1,4 @@ -# warnings.m4 serial 8 +# warnings.m4 serial 9 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -25,16 +25,24 @@ m4_ifdef([AS_VAR_APPEND], AC_DEFUN([gl_COMPILER_OPTION_IF], [AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl +AS_LITERAL_IF([$1], + [m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))], + [gl_positive="$1" +case $gl_positive in + -Wno-*) gl_positive=`echo ".$gl_positive" | sed 's/^.//; s/^-Wno-/-W/'`;; +esac +m4_pushdef([gl_Positive], [$gl_positive])])dnl AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [ gl_save_compiler_FLAGS="$gl_Flags" gl_AS_VAR_APPEND(m4_defn([gl_Flags]), - [" $gl_unknown_warnings_are_errors ]m4_bpatsubst([$1], [^-Wno-], [-W])["]) + [" $gl_unknown_warnings_are_errors ]m4_defn([gl_Positive])["]) AC_COMPILE_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])], [AS_VAR_SET(gl_Warn, [yes])], [AS_VAR_SET(gl_Warn, [no])]) gl_Flags="$gl_save_compiler_FLAGS" ]) AS_VAR_IF(gl_Warn, [yes], [$2], [$3]) +m4_popdef([gl_Positive])dnl AS_VAR_POPDEF([gl_Flags])dnl AS_VAR_POPDEF([gl_Warn])dnl ]) -- 1.8.3.1
