diff options
Diffstat (limited to 'tool/m4')
-rw-r--r-- | tool/m4/ruby_check_va_copy.m4 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tool/m4/ruby_check_va_copy.m4 b/tool/m4/ruby_check_va_copy.m4 new file mode 100644 index 0000000000..cc885e56de --- /dev/null +++ b/tool/m4/ruby_check_va_copy.m4 @@ -0,0 +1,32 @@ +# -*- Autoconf -*- +m4_define(RUBY_CHECK_VA_COPY, [ + if test "x$rb_cv_va_copy" = x; then + AC_TRY_RUN( +[#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#define CONFTEST_VA_COPY(dst, src) $2 +void +conftest(int n, ...) +{ + va_list ap, ap2; + int i; + va_start(ap, n); + CONFTEST_VA_COPY(ap2, ap); + for (i = 0; i < n; i++) if ((int)va_arg(ap, int) != n - i - 1) abort(); + CONFTEST_VA_COPY(ap, ap2); + for (i = 0; i < n; i++) if ((int)va_arg(ap, int) != n - i - 1) abort(); + va_end(ap); +} +int +main() +{ + conftest(10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); + exit(0); +}], + rb_cv_va_copy=[$1], + rb_cv_va_copy="", + rb_cv_va_copy="")dnl + fi +])dnl +dnl |