On Wed, Mar 6, 2024 at 1:52 AM Kees Cook <keescook@xxxxxxxxxxxx> wrote: > > On Tue, Mar 05, 2024 at 04:18:46PM -0600, Gustavo A. R. Silva wrote: > > -Wflex-array-member-not-at-end is coming in GCC-14, and we are getting > > ready to enable it globally. > > > > There is currently a local structure `f` that is using a flexible > > `struct file_handle` as header for an on-stack place-holder for the > > flexible-array member `unsigned char f_handle[];`. > > > > struct { > > struct file_handle handle; > > u8 pad[MAX_HANDLE_SZ]; > > } f; > > This code pattern is "put a flex array struct on the stack", but we have > a macro for this now: > > DEFINE_FLEX(struct file_handle, handle, f_handle, MAX_HANDLE_SZ); > > And you can even include the initializer: > > _DEFINE_FLEX(struct file_handle, handle, f_handle, MAX_HANDLE_SZ, > = { .handle_bytes = MAX_HANDLE_SZ }); > Indeed that looks much nicer. Thanks, Amir.