Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2023-01-17 Thread Qing Zhao via Gcc-patches
Thanks for the comment. 

I just committed the following:

>From fc681f5412c421ff9609aea448310106d2570fd5 Mon Sep 17 00:00:00 2001
From: Qing Zhao 
Date: Tue, 17 Jan 2023 15:52:15 +
Subject: [PATCH] gcc13/changes: update id 'flexible array' to
 'flexible-arrays' since ids must not contain white space

---
 htdocs/gcc-13/changes.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
index 08e36fb3..ca9cd2da 100644
--- a/htdocs/gcc-13/changes.html
+++ b/htdocs/gcc-13/changes.html
@@ -438,7 +438,7 @@ a work-in-progress.
 Other significant improvements
 
 
-Treating trailing arrays as flexible array members
+Treating trailing arrays as flexible array 
members
 
 
  GCC can now control when to treat the trailing array of a structure as a
-- 
2.31.1


> On Jan 13, 2023, at 3:59 PM, Gerald Pfeifer  wrote:
> 
> On Tue, 20 Dec 2022, Qing Zhao via Gcc-patches wrote:
>> +Treating trailing arrays as flexible array 
>> members
> 
> Please note that ids must not contain white space.
> 
> Would you mind following up making this "flexiblearray" or similiar?
> 
> Thank you,
> Gerald



Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2023-01-13 Thread Gerald Pfeifer
On Tue, 20 Dec 2022, Qing Zhao via Gcc-patches wrote:
> +Treating trailing arrays as flexible array 
> members

Please note that ids must not contain white space.

Would you mind following up making this "flexiblearray" or similiar?

Thank you,
Gerald


Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2023-01-10 Thread Qing Zhao via Gcc-patches



> On Jan 10, 2023, at 3:06 AM, Richard Biener  wrote:
> 
> On Mon, 9 Jan 2023, Qing Zhao wrote:
> 
>> 
>> 
>>> On Jan 9, 2023, at 2:11 AM, Richard Biener  wrote:
>>> 
>>> On Thu, 22 Dec 2022, Qing Zhao wrote:
>>> 
>>>> 
>>>> 
>>>>> On Dec 22, 2022, at 2:09 AM, Richard Biener  wrote:
>>>>> 
>>>>> On Wed, 21 Dec 2022, Qing Zhao wrote:
>>>>> 
>>>>>> Hi, Richard,
>>>>>> 
>>>>>> Thanks a lot for your comments.
>>>>>> 
>>>>>>> On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
>>>>>>> 
>>>>>>> On Tue, 20 Dec 2022, Qing Zhao wrote:
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> This is the patch for mentioning -fstrict-flex-arrays and 
>>>>>>>> -Warray-bounds=2 changes in gcc-13/changes.html.
>>>>>>>> 
>>>>>>>> Let me know if you have any comment or suggestions.
>>>>>>> 
>>>>>>> Some copy editing below
>>>>>>> 
>>>>>>>> Thanks.
>>>>>>>> 
>>>>>>>> Qing.
>>>>>>>> 
>>>>>>>> ===
>>>>>>>> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
>>>>>>>> From: Qing Zhao 
>>>>>>>> Date: Tue, 20 Dec 2022 16:13:04 +
>>>>>>>> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its 
>>>>>>>> impact.
>>>>>>>> 
>>>>>>>> ---
>>>>>>>> htdocs/gcc-13/changes.html | 15 +++
>>>>>>>> 1 file changed, 15 insertions(+)
>>>>>>>> 
>>>>>>>> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
>>>>>>>> index 689178f9..47b3d40f 100644
>>>>>>>> --- a/htdocs/gcc-13/changes.html
>>>>>>>> +++ b/htdocs/gcc-13/changes.html
>>>>>>>> @@ -39,6 +39,10 @@ a work-in-progress.
>>>>>>>>  Legacy debug info compression option -gz=zlib-gnu 
>>>>>>>> was removed
>>>>>>>>and the option is ignored right now.
>>>>>>>>  New debug info compression option value -gz=zstd has 
>>>>>>>> been added.
>>>>>>>> +-Warray-bounds=2 will no longer issue warnings 
>>>>>>>> for out of bounds
>>>>>>>> +  accesses to trailing struct members of one-element array type 
>>>>>>>> anymore. Please
>>>>>>>> +  add -fstrict-flex-arrays=level to control how the 
>>>>>>>> compiler treat
>>>>>>>> +  trailing arrays of structures as flexible array members. 
>>>>>>> 
>>>>>>> "Instead it diagnoses accesses to trailing arrays according to 
>>>>>>> -fstrict-flex-arrays."
>>>>>> 
>>>>>> Okay.
>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> @@ -409,6 +413,17 @@ a work-in-progress.
>>>>>>>> Other significant improvements
>>>>>>>> 
>>>>>>>> 
>>>>>>>> +Treating trailing arrays as flexible array 
>>>>>>>> members
>>>>>>>> +
>>>>>>>> +
>>>>>>>> + GCC can now control when to treat the trailing array of a 
>>>>>>>> structure as a 
>>>>>>>> + flexible array member for the purpose of accessing the elements 
>>>>>>>> of such
>>>>>>>> + an array. By default, all trailing arrays of structures are 
>>>>>>>> treated as
>>>>>>> 
>>>>>>> all trailing arrays in aggregates are treated
>>>>>> Okay.
>>>>>>> 
>>>>>>>> + flexible array members. Use the new command-line option
>>>>>>>> + -fstrict-flex-array=level to control how GCC treats 
>>>>>>>> the trailing

Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2023-01-10 Thread Richard Biener via Gcc-patches
On Mon, 9 Jan 2023, Qing Zhao wrote:

> 
> 
> > On Jan 9, 2023, at 2:11 AM, Richard Biener  wrote:
> > 
> > On Thu, 22 Dec 2022, Qing Zhao wrote:
> > 
> >> 
> >> 
> >>> On Dec 22, 2022, at 2:09 AM, Richard Biener  wrote:
> >>> 
> >>> On Wed, 21 Dec 2022, Qing Zhao wrote:
> >>> 
> >>>> Hi, Richard,
> >>>> 
> >>>> Thanks a lot for your comments.
> >>>> 
> >>>>> On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
> >>>>> 
> >>>>> On Tue, 20 Dec 2022, Qing Zhao wrote:
> >>>>> 
> >>>>>> Hi,
> >>>>>> 
> >>>>>> This is the patch for mentioning -fstrict-flex-arrays and 
> >>>>>> -Warray-bounds=2 changes in gcc-13/changes.html.
> >>>>>> 
> >>>>>> Let me know if you have any comment or suggestions.
> >>>>> 
> >>>>> Some copy editing below
> >>>>> 
> >>>>>> Thanks.
> >>>>>> 
> >>>>>> Qing.
> >>>>>> 
> >>>>>> ===
> >>>>>> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
> >>>>>> From: Qing Zhao 
> >>>>>> Date: Tue, 20 Dec 2022 16:13:04 +
> >>>>>> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its 
> >>>>>> impact.
> >>>>>> 
> >>>>>> ---
> >>>>>> htdocs/gcc-13/changes.html | 15 +++
> >>>>>> 1 file changed, 15 insertions(+)
> >>>>>> 
> >>>>>> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
> >>>>>> index 689178f9..47b3d40f 100644
> >>>>>> --- a/htdocs/gcc-13/changes.html
> >>>>>> +++ b/htdocs/gcc-13/changes.html
> >>>>>> @@ -39,6 +39,10 @@ a work-in-progress.
> >>>>>>   Legacy debug info compression option -gz=zlib-gnu 
> >>>>>> was removed
> >>>>>> and the option is ignored right now.
> >>>>>>   New debug info compression option value -gz=zstd 
> >>>>>> has been added.
> >>>>>> +-Warray-bounds=2 will no longer issue warnings 
> >>>>>> for out of bounds
> >>>>>> +  accesses to trailing struct members of one-element array type 
> >>>>>> anymore. Please
> >>>>>> +  add -fstrict-flex-arrays=level to control how the 
> >>>>>> compiler treat
> >>>>>> +  trailing arrays of structures as flexible array members. 
> >>>>> 
> >>>>> "Instead it diagnoses accesses to trailing arrays according to 
> >>>>> -fstrict-flex-arrays."
> >>>> 
> >>>> Okay.
> >>>>> 
> >>>>>> 
> >>>>>> 
> >>>>>> 
> >>>>>> @@ -409,6 +413,17 @@ a work-in-progress.
> >>>>>> Other significant improvements
> >>>>>> 
> >>>>>> 
> >>>>>> +Treating trailing arrays as flexible array 
> >>>>>> members
> >>>>>> +
> >>>>>> +
> >>>>>> + GCC can now control when to treat the trailing array of a 
> >>>>>> structure as a 
> >>>>>> + flexible array member for the purpose of accessing the elements 
> >>>>>> of such
> >>>>>> + an array. By default, all trailing arrays of structures are 
> >>>>>> treated as
> >>>>> 
> >>>>> all trailing arrays in aggregates are treated
> >>>> Okay.
> >>>>> 
> >>>>>> + flexible array members. Use the new command-line option
> >>>>>> + -fstrict-flex-array=level to control how GCC treats 
> >>>>>> the trailing
> >>>>>> + array of a structure as a flexible array member at different 
> >>>>>> levels.
> >>>>> 
> >>>>> -fstrict-flex-arrays to control which trailing array
> >>>>> members are streated as flexible arrays.
> >>>> 
> >>&g

Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2023-01-09 Thread Qing Zhao via Gcc-patches


> On Jan 9, 2023, at 2:11 AM, Richard Biener  wrote:
> 
> On Thu, 22 Dec 2022, Qing Zhao wrote:
> 
>> 
>> 
>>> On Dec 22, 2022, at 2:09 AM, Richard Biener  wrote:
>>> 
>>> On Wed, 21 Dec 2022, Qing Zhao wrote:
>>> 
>>>> Hi, Richard,
>>>> 
>>>> Thanks a lot for your comments.
>>>> 
>>>>> On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
>>>>> 
>>>>> On Tue, 20 Dec 2022, Qing Zhao wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> This is the patch for mentioning -fstrict-flex-arrays and 
>>>>>> -Warray-bounds=2 changes in gcc-13/changes.html.
>>>>>> 
>>>>>> Let me know if you have any comment or suggestions.
>>>>> 
>>>>> Some copy editing below
>>>>> 
>>>>>> Thanks.
>>>>>> 
>>>>>> Qing.
>>>>>> 
>>>>>> ===
>>>>>> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
>>>>>> From: Qing Zhao 
>>>>>> Date: Tue, 20 Dec 2022 16:13:04 +
>>>>>> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its 
>>>>>> impact.
>>>>>> 
>>>>>> ---
>>>>>> htdocs/gcc-13/changes.html | 15 +++
>>>>>> 1 file changed, 15 insertions(+)
>>>>>> 
>>>>>> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
>>>>>> index 689178f9..47b3d40f 100644
>>>>>> --- a/htdocs/gcc-13/changes.html
>>>>>> +++ b/htdocs/gcc-13/changes.html
>>>>>> @@ -39,6 +39,10 @@ a work-in-progress.
>>>>>>   Legacy debug info compression option -gz=zlib-gnu was 
>>>>>> removed
>>>>>> and the option is ignored right now.
>>>>>>   New debug info compression option value -gz=zstd has 
>>>>>> been added.
>>>>>> +-Warray-bounds=2 will no longer issue warnings for 
>>>>>> out of bounds
>>>>>> +  accesses to trailing struct members of one-element array type 
>>>>>> anymore. Please
>>>>>> +  add -fstrict-flex-arrays=level to control how the 
>>>>>> compiler treat
>>>>>> +  trailing arrays of structures as flexible array members. 
>>>>> 
>>>>> "Instead it diagnoses accesses to trailing arrays according to 
>>>>> -fstrict-flex-arrays."
>>>> 
>>>> Okay.
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> @@ -409,6 +413,17 @@ a work-in-progress.
>>>>>> Other significant improvements
>>>>>> 
>>>>>> 
>>>>>> +Treating trailing arrays as flexible array 
>>>>>> members
>>>>>> +
>>>>>> +
>>>>>> + GCC can now control when to treat the trailing array of a 
>>>>>> structure as a 
>>>>>> + flexible array member for the purpose of accessing the elements of 
>>>>>> such
>>>>>> + an array. By default, all trailing arrays of structures are 
>>>>>> treated as
>>>>> 
>>>>> all trailing arrays in aggregates are treated
>>>> Okay.
>>>>> 
>>>>>> + flexible array members. Use the new command-line option
>>>>>> + -fstrict-flex-array=level to control how GCC treats 
>>>>>> the trailing
>>>>>> + array of a structure as a flexible array member at different 
>>>>>> levels.
>>>>> 
>>>>> -fstrict-flex-arrays to control which trailing array
>>>>> members are streated as flexible arrays.
>>>> 
>>>> Okay.
>>>> 
>>>>> 
>>>>> I've also just now noticed that there's now a flag_strict_flex_arrays
>>>>> check in the middle-end (in array bound diagnostics) but this option
>>>>> isn't streamed or handled with LTO.  I think you want to replace that
>>>>> with the appropriate DECL_NOT_FLEXARRAY check.
>>>> 
>>>> We need to know the level value of the strict_flex_arrays on the struct 
>>>

Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2023-01-08 Thread Richard Biener via Gcc-patches
On Thu, 22 Dec 2022, Qing Zhao wrote:

> 
> 
> > On Dec 22, 2022, at 2:09 AM, Richard Biener  wrote:
> > 
> > On Wed, 21 Dec 2022, Qing Zhao wrote:
> > 
> >> Hi, Richard,
> >> 
> >> Thanks a lot for your comments.
> >> 
> >>> On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
> >>> 
> >>> On Tue, 20 Dec 2022, Qing Zhao wrote:
> >>> 
> >>>> Hi,
> >>>> 
> >>>> This is the patch for mentioning -fstrict-flex-arrays and 
> >>>> -Warray-bounds=2 changes in gcc-13/changes.html.
> >>>> 
> >>>> Let me know if you have any comment or suggestions.
> >>> 
> >>> Some copy editing below
> >>> 
> >>>> Thanks.
> >>>> 
> >>>> Qing.
> >>>> 
> >>>> =======
> >>>> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
> >>>> From: Qing Zhao 
> >>>> Date: Tue, 20 Dec 2022 16:13:04 +
> >>>> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its 
> >>>> impact.
> >>>> 
> >>>> ---
> >>>> htdocs/gcc-13/changes.html | 15 +++
> >>>> 1 file changed, 15 insertions(+)
> >>>> 
> >>>> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
> >>>> index 689178f9..47b3d40f 100644
> >>>> --- a/htdocs/gcc-13/changes.html
> >>>> +++ b/htdocs/gcc-13/changes.html
> >>>> @@ -39,6 +39,10 @@ a work-in-progress.
> >>>>Legacy debug info compression option -gz=zlib-gnu 
> >>>> was removed
> >>>>  and the option is ignored right now.
> >>>>New debug info compression option value -gz=zstd has 
> >>>> been added.
> >>>> +-Warray-bounds=2 will no longer issue warnings for 
> >>>> out of bounds
> >>>> +  accesses to trailing struct members of one-element array type 
> >>>> anymore. Please
> >>>> +  add -fstrict-flex-arrays=level to control how the 
> >>>> compiler treat
> >>>> +  trailing arrays of structures as flexible array members. 
> >>> 
> >>> "Instead it diagnoses accesses to trailing arrays according to 
> >>> -fstrict-flex-arrays."
> >> 
> >> Okay.
> >>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> @@ -409,6 +413,17 @@ a work-in-progress.
> >>>> Other significant improvements
> >>>> 
> >>>> 
> >>>> +Treating trailing arrays as flexible array 
> >>>> members
> >>>> +
> >>>> +
> >>>> + GCC can now control when to treat the trailing array of a 
> >>>> structure as a 
> >>>> + flexible array member for the purpose of accessing the elements of 
> >>>> such
> >>>> + an array. By default, all trailing arrays of structures are 
> >>>> treated as
> >>> 
> >>> all trailing arrays in aggregates are treated
> >> Okay.
> >>> 
> >>>> + flexible array members. Use the new command-line option
> >>>> + -fstrict-flex-array=level to control how GCC treats 
> >>>> the trailing
> >>>> + array of a structure as a flexible array member at different 
> >>>> levels.
> >>> 
> >>> -fstrict-flex-arrays to control which trailing array
> >>> members are streated as flexible arrays.
> >> 
> >> Okay.
> >> 
> >>> 
> >>> I've also just now noticed that there's now a flag_strict_flex_arrays
> >>> check in the middle-end (in array bound diagnostics) but this option
> >>> isn't streamed or handled with LTO.  I think you want to replace that
> >>> with the appropriate DECL_NOT_FLEXARRAY check.
> >> 
> >> We need to know the level value of the strict_flex_arrays on the struct 
> >> field to issue proper warnings at different levels. DECL_NOT_FLEXARRAY 
> >> does not include such info. So, what should I do? Streaming the 
> >> flag_strict_flex_arrays with LTO?
> > 
> > But you do
> > 
> >  if (compref)
> >{
> >  /* Try to determine special array member type for this 
> > COMPONENT_REF.  */

Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2022-12-22 Thread Qing Zhao via Gcc-patches


> On Dec 22, 2022, at 2:09 AM, Richard Biener  wrote:
> 
> On Wed, 21 Dec 2022, Qing Zhao wrote:
> 
>> Hi, Richard,
>> 
>> Thanks a lot for your comments.
>> 
>>> On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
>>> 
>>> On Tue, 20 Dec 2022, Qing Zhao wrote:
>>> 
>>>> Hi,
>>>> 
>>>> This is the patch for mentioning -fstrict-flex-arrays and -Warray-bounds=2 
>>>> changes in gcc-13/changes.html.
>>>> 
>>>> Let me know if you have any comment or suggestions.
>>> 
>>> Some copy editing below
>>> 
>>>> Thanks.
>>>> 
>>>> Qing.
>>>> 
>>>> ===============
>>>> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
>>>> From: Qing Zhao 
>>>> Date: Tue, 20 Dec 2022 16:13:04 +
>>>> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its 
>>>> impact.
>>>> 
>>>> ---
>>>> htdocs/gcc-13/changes.html | 15 +++
>>>> 1 file changed, 15 insertions(+)
>>>> 
>>>> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
>>>> index 689178f9..47b3d40f 100644
>>>> --- a/htdocs/gcc-13/changes.html
>>>> +++ b/htdocs/gcc-13/changes.html
>>>> @@ -39,6 +39,10 @@ a work-in-progress.
>>>>Legacy debug info compression option -gz=zlib-gnu was 
>>>> removed
>>>>  and the option is ignored right now.
>>>>New debug info compression option value -gz=zstd has 
>>>> been added.
>>>> +-Warray-bounds=2 will no longer issue warnings for 
>>>> out of bounds
>>>> +  accesses to trailing struct members of one-element array type 
>>>> anymore. Please
>>>> +  add -fstrict-flex-arrays=level to control how the 
>>>> compiler treat
>>>> +  trailing arrays of structures as flexible array members. 
>>> 
>>> "Instead it diagnoses accesses to trailing arrays according to 
>>> -fstrict-flex-arrays."
>> 
>> Okay.
>>> 
>>>> 
>>>> 
>>>> 
>>>> @@ -409,6 +413,17 @@ a work-in-progress.
>>>> Other significant improvements
>>>> 
>>>> 
>>>> +Treating trailing arrays as flexible array 
>>>> members
>>>> +
>>>> +
>>>> + GCC can now control when to treat the trailing array of a structure 
>>>> as a 
>>>> + flexible array member for the purpose of accessing the elements of 
>>>> such
>>>> + an array. By default, all trailing arrays of structures are treated 
>>>> as
>>> 
>>> all trailing arrays in aggregates are treated
>> Okay.
>>> 
>>>> + flexible array members. Use the new command-line option
>>>> + -fstrict-flex-array=level to control how GCC treats the 
>>>> trailing
>>>> + array of a structure as a flexible array member at different levels.
>>> 
>>> -fstrict-flex-arrays to control which trailing array
>>> members are streated as flexible arrays.
>> 
>> Okay.
>> 
>>> 
>>> I've also just now noticed that there's now a flag_strict_flex_arrays
>>> check in the middle-end (in array bound diagnostics) but this option
>>> isn't streamed or handled with LTO.  I think you want to replace that
>>> with the appropriate DECL_NOT_FLEXARRAY check.
>> 
>> We need to know the level value of the strict_flex_arrays on the struct 
>> field to issue proper warnings at different levels. DECL_NOT_FLEXARRAY 
>> does not include such info. So, what should I do? Streaming the 
>> flag_strict_flex_arrays with LTO?
> 
> But you do
> 
>  if (compref)
>{
>  /* Try to determine special array member type for this 
> COMPONENT_REF.  */
>  sam = component_ref_sam_type (arg);
>  /* Get the level of strict_flex_array for this array field.  */
>  tree afield_decl = TREE_OPERAND (arg, 1);
>  strict_flex_array_level = strict_flex_array_level_of (afield_decl);
> 
> I see that function doesn't look at DECL_NOT_FLEXARRAY but just
> checks attributes (those are streamed in LTO).

Yes, checked both flag_strict_flex_arrays and attributes. 

There are two places in middle end calling “strict_flex_array_level_of” 
function, 
one inside “array_bounds_checker::check_array_ref”, another one inside 
“component

Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2022-12-21 Thread Richard Biener via Gcc-patches
On Wed, 21 Dec 2022, Qing Zhao wrote:

> Hi, Richard,
> 
> Thanks a lot for your comments.
> 
> > On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
> > 
> > On Tue, 20 Dec 2022, Qing Zhao wrote:
> > 
> >> Hi,
> >> 
> >> This is the patch for mentioning -fstrict-flex-arrays and -Warray-bounds=2 
> >> changes in gcc-13/changes.html.
> >> 
> >> Let me know if you have any comment or suggestions.
> > 
> > Some copy editing below
> > 
> >> Thanks.
> >> 
> >> Qing.
> >> 
> >> ===
> >> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
> >> From: Qing Zhao 
> >> Date: Tue, 20 Dec 2022 16:13:04 +
> >> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its 
> >> impact.
> >> 
> >> ---
> >> htdocs/gcc-13/changes.html | 15 +++
> >> 1 file changed, 15 insertions(+)
> >> 
> >> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
> >> index 689178f9..47b3d40f 100644
> >> --- a/htdocs/gcc-13/changes.html
> >> +++ b/htdocs/gcc-13/changes.html
> >> @@ -39,6 +39,10 @@ a work-in-progress.
> >> Legacy debug info compression option -gz=zlib-gnu was 
> >> removed
> >>   and the option is ignored right now.
> >> New debug info compression option value -gz=zstd has 
> >> been added.
> >> +-Warray-bounds=2 will no longer issue warnings for 
> >> out of bounds
> >> +  accesses to trailing struct members of one-element array type 
> >> anymore. Please
> >> +  add -fstrict-flex-arrays=level to control how the 
> >> compiler treat
> >> +  trailing arrays of structures as flexible array members. 
> > 
> > "Instead it diagnoses accesses to trailing arrays according to 
> > -fstrict-flex-arrays."
> 
> Okay.
> > 
> >> 
> >> 
> >> 
> >> @@ -409,6 +413,17 @@ a work-in-progress.
> >> Other significant improvements
> >> 
> >> 
> >> +Treating trailing arrays as flexible array 
> >> members
> >> +
> >> +
> >> + GCC can now control when to treat the trailing array of a structure 
> >> as a 
> >> + flexible array member for the purpose of accessing the elements of 
> >> such
> >> + an array. By default, all trailing arrays of structures are treated 
> >> as
> > 
> > all trailing arrays in aggregates are treated
> Okay.
> > 
> >> + flexible array members. Use the new command-line option
> >> + -fstrict-flex-array=level to control how GCC treats the 
> >> trailing
> >> + array of a structure as a flexible array member at different levels.
> > 
> > -fstrict-flex-arrays to control which trailing array
> > members are streated as flexible arrays.
> 
> Okay.
> 
> > 
> > I've also just now noticed that there's now a flag_strict_flex_arrays
> > check in the middle-end (in array bound diagnostics) but this option
> > isn't streamed or handled with LTO.  I think you want to replace that
> > with the appropriate DECL_NOT_FLEXARRAY check.
> 
> We need to know the level value of the strict_flex_arrays on the struct 
> field to issue proper warnings at different levels. DECL_NOT_FLEXARRAY 
> does not include such info. So, what should I do? Streaming the 
> flag_strict_flex_arrays with LTO?

But you do

  if (compref)
{
  /* Try to determine special array member type for this 
COMPONENT_REF.  */
  sam = component_ref_sam_type (arg);
  /* Get the level of strict_flex_array for this array field.  */
  tree afield_decl = TREE_OPERAND (arg, 1);
  strict_flex_array_level = strict_flex_array_level_of (afield_decl);

I see that function doesn't look at DECL_NOT_FLEXARRAY but just
checks attributes (those are streamed in LTO).

OK, so I suppose the diagnostic itself would become just less precise
as in "trailing array %qT should not be used as a flexible array member"
without the "for level N and above" part of the diagnostic?

> >  We might also want
> > to see how inlining accesses from TUs with different -fstrict-flex-arrays
> > setting behaves when accessing the same structure (and whether we might
> > want to issue an ODR style diagnostic there).

This mixing also means streaming -fstrict-flex-arrays won't be of much
help in general.

> Yes, good point, I will check on this part.
> 
> BTW, a stupid question: what does ODR mean?

It's the One-Definition-Rule (of C++).  Basically we'd diagnose
same struct declarations with different -fstrict-flex-arrays setting.
I see we miss comparing DECL_NOT_FLEXARRAY for tree merging, I'm
testing a patch to fix that now.

Richard.

> thanks.
> 
> Qing
> > 
> > Thanks,
> > Richard.
> 
> 

-- 
Richard Biener 
SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg,
Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman;
HRB 36809 (AG Nuernberg)


Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2022-12-21 Thread Qing Zhao via Gcc-patches
Hi, Richard,

Thanks a lot for your comments.

> On Dec 21, 2022, at 2:12 AM, Richard Biener  wrote:
> 
> On Tue, 20 Dec 2022, Qing Zhao wrote:
> 
>> Hi,
>> 
>> This is the patch for mentioning -fstrict-flex-arrays and -Warray-bounds=2 
>> changes in gcc-13/changes.html.
>> 
>> Let me know if you have any comment or suggestions.
> 
> Some copy editing below
> 
>> Thanks.
>> 
>> Qing.
>> 
>> ===
>> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
>> From: Qing Zhao 
>> Date: Tue, 20 Dec 2022 16:13:04 +0000
>> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its impact.
>> 
>> ---
>> htdocs/gcc-13/changes.html | 15 +++
>> 1 file changed, 15 insertions(+)
>> 
>> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
>> index 689178f9..47b3d40f 100644
>> --- a/htdocs/gcc-13/changes.html
>> +++ b/htdocs/gcc-13/changes.html
>> @@ -39,6 +39,10 @@ a work-in-progress.
>> Legacy debug info compression option -gz=zlib-gnu was 
>> removed
>>   and the option is ignored right now.
>> New debug info compression option value -gz=zstd has 
>> been added.
>> +-Warray-bounds=2 will no longer issue warnings for out 
>> of bounds
>> +  accesses to trailing struct members of one-element array type 
>> anymore. Please
>> +  add -fstrict-flex-arrays=level to control how the 
>> compiler treat
>> +  trailing arrays of structures as flexible array members. 
> 
> "Instead it diagnoses accesses to trailing arrays according to 
> -fstrict-flex-arrays."

Okay.
> 
>> 
>> 
>> 
>> @@ -409,6 +413,17 @@ a work-in-progress.
>> Other significant improvements
>> 
>> 
>> +Treating trailing arrays as flexible array 
>> members
>> +
>> +
>> + GCC can now control when to treat the trailing array of a structure as 
>> a 
>> + flexible array member for the purpose of accessing the elements of such
>> + an array. By default, all trailing arrays of structures are treated as
> 
> all trailing arrays in aggregates are treated
Okay.
> 
>> + flexible array members. Use the new command-line option
>> + -fstrict-flex-array=level to control how GCC treats the 
>> trailing
>> + array of a structure as a flexible array member at different levels.
> 
> -fstrict-flex-arrays to control which trailing array
> members are streated as flexible arrays.

Okay.

> 
> I've also just now noticed that there's now a flag_strict_flex_arrays
> check in the middle-end (in array bound diagnostics) but this option
> isn't streamed or handled with LTO.  I think you want to replace that
> with the appropriate DECL_NOT_FLEXARRAY check.

We need to know the level value of the strict_flex_arrays on the struct field 
to issue proper warnings at different levels.
DECL_NOT_FLEXARRAY does not include such info.
So, what should I do? Streaming the flag_strict_flex_arrays with LTO?

>  We might also want
> to see how inlining accesses from TUs with different -fstrict-flex-arrays
> setting behaves when accessing the same structure (and whether we might
> want to issue an ODR style diagnostic there).

Yes, good point, I will check on this part.

BTW, a stupid question: what does ODR mean?

thanks.

Qing
> 
> Thanks,
> Richard.



Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2022-12-20 Thread Richard Biener via Gcc-patches
On Tue, 20 Dec 2022, Qing Zhao wrote:

> Hi,
> 
> This is the patch for mentioning -fstrict-flex-arrays and -Warray-bounds=2 
> changes in gcc-13/changes.html.
> 
> Let me know if you have any comment or suggestions.

Some copy editing below

> Thanks.
> 
> Qing.
> 
> ===
> From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
> From: Qing Zhao 
> Date: Tue, 20 Dec 2022 16:13:04 +
> Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its impact.
> 
> ---
>  htdocs/gcc-13/changes.html | 15 +++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
> index 689178f9..47b3d40f 100644
> --- a/htdocs/gcc-13/changes.html
> +++ b/htdocs/gcc-13/changes.html
> @@ -39,6 +39,10 @@ a work-in-progress.
>  Legacy debug info compression option -gz=zlib-gnu was 
> removed
>and the option is ignored right now.
>  New debug info compression option value -gz=zstd has 
> been added.
> +-Warray-bounds=2 will no longer issue warnings for out 
> of bounds
> +  accesses to trailing struct members of one-element array type anymore. 
> Please
> +  add -fstrict-flex-arrays=level to control how the 
> compiler treat
> +  trailing arrays of structures as flexible array members. 

"Instead it diagnoses accesses to trailing arrays according to 
-fstrict-flex-arrays."

>  
>  
>  
> @@ -409,6 +413,17 @@ a work-in-progress.
>  Other significant improvements
>  
>  
> +Treating trailing arrays as flexible array 
> members
> +
> +
> + GCC can now control when to treat the trailing array of a structure as 
> a 
> + flexible array member for the purpose of accessing the elements of such
> + an array. By default, all trailing arrays of structures are treated as

all trailing arrays in aggregates are treated
 
> + flexible array members. Use the new command-line option
> + -fstrict-flex-array=level to control how GCC treats the 
> trailing
> + array of a structure as a flexible array member at different levels.

-fstrict-flex-arrays to control which trailing array
members are streated as flexible arrays.

I've also just now noticed that there's now a flag_strict_flex_arrays
check in the middle-end (in array bound diagnostics) but this option
isn't streamed or handled with LTO.  I think you want to replace that
with the appropriate DECL_NOT_FLEXARRAY check.  We might also want
to see how inlining accesses from TUs with different -fstrict-flex-arrays
setting behaves when accessing the same structure (and whether we might
want to issue an ODR style diagnostic there).

Thanks,
Richard.


gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact

2022-12-20 Thread Qing Zhao via Gcc-patches
Hi,

This is the patch for mentioning -fstrict-flex-arrays and -Warray-bounds=2 
changes in gcc-13/changes.html.

Let me know if you have any comment or suggestions.

Thanks.

Qing.

===
>From c022076169b4f1990b91f7daf4cc52c6c5535228 Mon Sep 17 00:00:00 2001
From: Qing Zhao 
Date: Tue, 20 Dec 2022 16:13:04 +
Subject: [PATCH] gcc-13/changes: Mention -fstrict-flex-arrays and its impact.

---
 htdocs/gcc-13/changes.html | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
index 689178f9..47b3d40f 100644
--- a/htdocs/gcc-13/changes.html
+++ b/htdocs/gcc-13/changes.html
@@ -39,6 +39,10 @@ a work-in-progress.
 Legacy debug info compression option -gz=zlib-gnu was 
removed
   and the option is ignored right now.
 New debug info compression option value -gz=zstd has been 
added.
+-Warray-bounds=2 will no longer issue warnings for out of 
bounds
+  accesses to trailing struct members of one-element array type anymore. 
Please
+  add -fstrict-flex-arrays=level to control how the compiler 
treat
+  trailing arrays of structures as flexible array members. 
 
 
 
@@ -409,6 +413,17 @@ a work-in-progress.
 Other significant improvements
 
 
+Treating trailing arrays as flexible array members
+
+
+ GCC can now control when to treat the trailing array of a structure as a 
+ flexible array member for the purpose of accessing the elements of such
+ an array. By default, all trailing arrays of structures are treated as 
+ flexible array members. Use the new command-line option
+ -fstrict-flex-array=level to control how GCC treats the 
trailing
+ array of a structure as a flexible array member at different levels.
+ 
+
 
 
 
-- 
2.31.1