mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
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 commit is contained in:
parent
505119f0a7
commit
2d80ab7122
@ -352,9 +352,15 @@ AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdio.h>],
|
||||
[
|
||||
#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);
|
||||
|
Loading…
Reference in New Issue
Block a user