On Fri, 2 Dec 2022, Richard Biener wrote: > On Thu, 1 Dec 2022, Siddhesh Poyarekar wrote: > > > On 2022-12-01 11:42, Kees Cook wrote: > > > On Wed, Nov 30, 2022 at 02:25:56PM +0000, Qing Zhao wrote: > > >> '-Wstrict-flex-arrays' > > >> Warn about inproper usages of flexible array members according to > > >> the LEVEL of the 'strict_flex_array (LEVEL)' attribute attached to > > >> the trailing array field of a structure if it's available, > > >> otherwise according to the LEVEL of the option > > >> '-fstrict-flex-arrays=LEVEL'. > > >> > > >> This option is effective only when LEVEL is bigger than 0. > > >> Otherwise, it will be ignored with a warning. > > >> > > >> when LEVEL=1, warnings will be issued for a trailing array > > >> reference of a structure that have 2 or more elements if the > > >> trailing array is referenced as a flexible array member. > > >> > > >> when LEVEL=2, in addition to LEVEL=1, additional warnings will be > > >> issued for a trailing one-element array reference of a structure if > > >> the array is referenced as a flexible array member. > > >> > > >> when LEVEL=3, in addition to LEVEL=2, additional warnings will be > > >> issued for a trailing zero-length array reference of a structure if > > >> the array is referenced as a flexible array member. > > >> > > >> At the same time, -Warray-bounds is updated: > > > > > > Why is there both -Wstrict-flex-arrays and -Warray-bounds? I thought > > > only the latter was going to exist? > > Sorry for appearantly not being clear - I was requesting > -Wstrict-flex-arrays to be dropped and instead adjusting -Warray-bounds > to adhere to -fstrict-flex-arrays in both =1 and =2 where then =2 > would only add the intermediate pointer results verification. > > I think that's reasonable if documented since the default behavior > with -Wall will not change then unless the -fstrict-flex-arrays > default is altered.
Btw, your patch seems to implement the above plus adds -Wstrict-flex-arrays. It seems it could be split into two, doing the -Warray-bounds adjustment as first and the -Wstrict-flex-arrays addition as second. We do all seem to agree on the first so it's easy to go forward with that? Thanks, Richard.