Skip to content

Commit

Permalink
Fix -fstrict-flex-arrays documentation, again [PR111659]
Browse files Browse the repository at this point in the history
My previous attempt to fix this issue ended up garbling the text
instead.  Trying again to make the descriptions of the attribute and
command-line option consistent.

gcc/ChangeLog
	PR middle-end/111659
	* doc/extend.texi (Common Variable Attributes): Copy-edit description
	of the strict_flex_array attribute levels.
	* doc/invoke.texi (C Dialect Options): Swap documented behavior for
	levels 0 and 3.  Copy the description for the other levels from the
	attribute instead of indirecting to it.
  • Loading branch information
Sandra Loosemore committed Dec 13, 2024
1 parent 9946ab8 commit d136fa0
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
4 changes: 2 additions & 2 deletions gcc/doc/extend.texi
Original file line number Diff line number Diff line change
Expand Up @@ -8328,11 +8328,11 @@ only when the trailing array is declared as a flexible array member per C99
standard onwards (@samp{[]}), it is treated as a flexible array member.

There are two more levels in between 0 and 3, which are provided to
support older codes that use GCC zero-length array extension
support older code that uses the GCC zero-length array extension
(@samp{[0]}) or one-element array as flexible array members
(@samp{[1]}). When @var{level} is 1, the trailing array is treated as
a flexible array member when it is declared as either @samp{[]},
@samp{[0]}, or @samp{[1]}; When @var{level} is 2, the trailing array
@samp{[0]}, or @samp{[1]}. When @var{level} is 2, the trailing array
is treated as a flexible array member when it is declared as either
@samp{[]}, or @samp{[0]}.

Expand Down
20 changes: 13 additions & 7 deletions gcc/doc/invoke.texi
Original file line number Diff line number Diff line change
Expand Up @@ -2980,16 +2980,22 @@ member for the purpose of accessing the elements of such an array. The value
of @var{level} controls the level of strictness.

@option{-fstrict-flex-arrays} is equivalent to
@option{-fstrict-flex-arrays=3}, which is the strictest; all
trailing arrays of structures are treated as flexible array members.
@option{-fstrict-flex-arrays=3}, which is the strictest;
a trailing array is treated as a flexible array member only when
it is declared as a flexible array member per C99 standard onwards.

The negative form @option{-fno-strict-flex-arrays} is equivalent to
@option{-fstrict-flex-arrays=0}, which is the least strict. In this
case a trailing array is treated as a flexible array member only when
it is declared as a flexible array member per C99 standard onwards.

The possible values of @var{level} are the same as for the
@code{strict_flex_array} attribute (@pxref{Variable Attributes}).
case all trailing arrays of structures are treated as flexible array members.

There are two more levels in between 0 and 3, which are provided to
support older code that uses the GCC zero-length array extension
(@samp{[0]}) or one-element array as flexible array members
(@samp{[1]}). When @var{level} is 1, the trailing array is treated as
a flexible array member when it is declared as either @samp{[]},
@samp{[0]}, or @samp{[1]}. When @var{level} is 2, the trailing array
is treated as a flexible array member when it is declared as either
@samp{[]}, or @samp{[0]}.

You can control this behavior for a specific trailing array field of a
structure by using the variable attribute @code{strict_flex_array} attribute
Expand Down

0 comments on commit d136fa0

Please sign in to comment.