On Fri, Feb 21, 2020 at 11:31 AM Tom Lane <[email protected]> wrote:
> Assume that we have signed integral types and flexible array members.

I see this change to c.h:

+/*
+ * We require C99, hence the compiler should understand flexible array
+ * members.  However, for documentation purposes we still consider it to be
+ * project style to write "field[FLEXIBLE_ARRAY_MEMBER]" not just "field[]".
+ * When computing the size of such an object, use "offsetof(struct s, f)"
+ * for portability.  Don't use "offsetof(struct s, f[0])", as this doesn't
+ * work with MSVC and with C++ compilers.
+ */
+#define FLEXIBLE_ARRAY_MEMBER  /* empty */

Why not just get rid of the FLEXIBLE_ARRAY_MEMBER hack altogether?

I don't think that we need it as a way of drawing attention to the
fact that "offsetof(struct s, f[0])" should not be used. That's not
idiomatic style anyway. If somebody makes this mistake, then I believe
that their code will reliably fail to compile once it hits CF Tester
or the buildfarm.

-- 
Peter Geoghegan


Reply via email to