diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 12fe7bc3345..ebd970155f7 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -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]}. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 67a3c8fd91e..0fdf8501585 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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