Andres Freund <[email protected]> writes:
> I got a - I thought - spurious warning in a development patch. A simplified
> reproducer of the warning is [1], which triggers:

> <source>: In function 'trigger_warning':
> <source>:19:9: warning: array subscript 'struct foo[0]' is partly outside 
> array bounds of 'unsigned char[13]' [-Warray-bounds=]
>    19 |     foop->len = len;
>       |         ^~
> <source>:18:12: note: object of size 13 allocated by 'allocme'
>    18 |     foop = allocme(offsetof(struct foo, data) + sizeof(char) * len);
>       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Compiler returned: 0

Considering that palloc() is going to round up the request to a
maxalign boundary, I think the chances of actual trouble are
precisely zero.  However, if we start getting such warnings on
common compilers, maybe the way to fix it is to put the maxaligns
into the calls?

                        regards, tom lane


Reply via email to