From 69fba4bf57154fba7363c2045338c7d124deade1 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 7 Nov 2006 17:20:07 +0000 Subject: [PATCH] * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): Mention that offsetof should be used instead of sizeof. From Bruno Haible. --- ChangeLog | 6 ++++++ m4/flexmember.m4 | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index adf5c47f64..58a0ced595 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-11-07 Paul Eggert + + * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): + Mention that offsetof should be used instead of sizeof. + From Bruno Haible. + 2006-11-07 Bruno Haible * lib/w32spawn.h (prepare_spawn): Use XNMALLOC instead of xmalloc. diff --git a/m4/flexmember.m4 b/m4/flexmember.m4 index 2a6ae474ec..bedb799b9c 100644 --- a/m4/flexmember.m4 +++ b/m4/flexmember.m4 @@ -41,7 +41,11 @@ AC_DEFUN([AC_C_FLEXIBLE_ARRAY_MEMBER], [Define to nothing if C supports flexible array members, and to 1 if it does not. That way, with a declaration like `struct s { int n; double d@<:@FLEXIBLE_ARRAY_MEMBER@:>@; };', the struct hack - can be used with pre-C99 compilers.]) + can be used with pre-C99 compilers. + When computing the size of such an object, don't use 'sizeof (struct s)' + as it overestimates the size. Use 'offsetof (struct s, d)' instead. + Don't use 'offsetof (struct s, d@<:@0@:>@)', as this doesn't work with + MSVC and with C++ compilers.]) else AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], 1) fi -- 2.30.2