# HG changeset patch # User Eric Blake # Date 1260885583 25200 # Node ID b1b3a310e65a9ecf4ef255758e2f5d870bbb153f # Parent 11bc92a9e2bc8d3e047d04609236748ff0a32592 va-args: new module * modules/va-args: New file. * m4/va-args.m4 (gl_VA_ARGS): Likewise. * MODULES.html.sh (Core language properties): Mention it. Signed-off-by: Eric Blake diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-12-23 Eric Blake + va-args: new module + * modules/va-args: New file. + * m4/va-args.m4 (gl_VA_ARGS): Likewise. + * MODULES.html.sh (Core language properties): Mention it. + gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_ * m4/gnulib-common.m4 (gl_COMMON): Create a more-appropriately named alias for __attribute__((__unused__)). diff --git a/MODULES.html.sh b/MODULES.html.sh --- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -2000,6 +2000,7 @@ func_module func func_module inline func_module longlong + func_module va-args func_module vararrays func_end_table diff --git a/m4/va-args.m4 b/m4/va-args.m4 new file mode 100644 --- /dev/null +++ b/m4/va-args.m4 @@ -0,0 +1,25 @@ +# va-args.m4 serial 1 +dnl Copyright (C) 2009 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Test for variadic macro support. +dnl Define HAVE_VA_ARGS if macros can use __VA_ARGS__. +AC_DEFUN([gl_VA_ARGS], +[ + AC_CACHE_CHECK([whether the preprocessor allows variadic macros], + [gl_cv_c_va_args], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #define a(func, arg, ...) func (arg, __VA_ARGS__) + #define b(...) a (__VA_ARGS__) + ]], [[b (printf, "%s", "test");]])], + [gl_cv_c_va_args=yes], [gl_cv_c_va_args=no]) + ]) + if test $gl_cv_c_va_args = yes; then + AC_DEFINE([HAVE_VA_ARGS], [1], + [Define to 1 if the preprocessor supports variadic macros and + __VA_ARGS__.]) + fi +]) diff --git a/modules/va-args b/modules/va-args new file mode 100644 --- /dev/null +++ b/modules/va-args @@ -0,0 +1,20 @@ +Description: +Detect whether the preprocessor supports C99 variadic macros and __VA_ARGS__. + +Files: +m4/va-args.m4 + +Depends-on: + +configure.ac: +gl_VA_ARGS + +Makefile.am: + +Include: + +License: +LGPL + +Maintainer: +Eric Blake