From 744df8b1de32a5c4047aff5e9a9fa8b680ffea6f Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Tue, 15 Dec 2009 06:59:43 -0700 Subject: [PATCH] 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 --- ChangeLog | 5 +++++ MODULES.html.sh | 1 + m4/va-args.m4 | 25 +++++++++++++++++++++++++ modules/va-args | 20 ++++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 m4/va-args.m4 create mode 100644 modules/va-args diff --git a/ChangeLog b/ChangeLog index 7e1dd7635..97e496b0e 100644 --- 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 index 9d5664a2b..7f079d3ee 100755 --- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -2000,6 +2000,7 @@ func_all_modules () 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 index 000000000..12d099b8c --- /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 index 000000000..79fb16328 --- /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 -- 2.11.0