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?

Oh my understanding of the consensus was to move flex array related diagnosis from -Warray-bounds to -Wstring-flex-arrays as Qing has done. If only the former exists then instead of removing the flex array related statement in the documentation as Richard suggested, we need to enhance it to say that behaviour of -Warray-bounds will depend on -fstrict-flex-arrays.

-Warray-bounds does diagnosis beyond just flexible arrays, in case that's the confusion.

Sid

Reply via email to