Re: pgsql: Assume that we have signed integral types and flexiblearray mem
От | Peter Geoghegan |
---|---|
Тема | Re: pgsql: Assume that we have signed integral types and flexiblearray mem |
Дата | |
Msg-id | CAH2-Wzm2NSUmHML6S4z7qBskXqe0oVsGwcKs2ego2G3p765T0w@mail.gmail.com обсуждение исходный текст |
Ответ на | pgsql: Assume that we have signed integral types and flexible array mem (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: pgsql: Assume that we have signed integral types and flexible array mem
|
Список | pgsql-committers |
On Fri, Feb 21, 2020 at 11:31 AM Tom Lane <tgl@sss.pgh.pa.us> 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
В списке pgsql-committers по дате отправления: