From 5f65fc0318ec2e218f6e521fc1849c186799f541 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 22 Feb 2002 01:54:17 +0000 Subject: Try to catch the compilers that don't handle immidiate structures as well as we would like. We use them to initialise other struct (lookup) tables, so test that as well. Also try not to segfault during our snprintf tests - test both with a 0 len buffer and without any buffer at all. Andrew Bartlett (This used to be commit 2d80ab7122f34d3bf31cddd26a63929f9c2ced77) --- source3/configure.in | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'source3/configure.in') diff --git a/source3/configure.in b/source3/configure.in index 6c2aae1872..90bf8a67c5 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -352,9 +352,15 @@ AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [ AC_TRY_COMPILE([ #include ], [ - #define X_FOOBAR(x) ((FOOBAR) { x }) typedef struct {unsigned x;} FOOBAR; - FOOBAR f = X_FOOBAR(1); + #define X_FOOBAR(x) ((FOOBAR) { x }) + #define FOO_ONE X_FOOBAR(1) + FOOBAR f = FOO_ONE; + static struct { + FOOBAR y; + } f2[] = { + {FOO_ONE} + }; ], samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)]) if test x"$samba_cv_immediate_structures" = x"yes"; then @@ -989,6 +995,11 @@ void foo(const char *format, ...) { int len; char buf[5]; + va_start(ap, format); + len = vsnprintf(buf, 0, format, ap); + va_end(ap); + if (len != 5) exit(1); + va_start(ap, format); len = vsnprintf(0, 0, format, ap); va_end(ap); -- cgit