public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Qing Zhao <qing.zhao@oracle.com>
To: Richard Biener <rguenther@suse.de>
Cc: gcc Patches <gcc-patches@gcc.gnu.org>
Subject: Re: gcc-13/changes.html: Mention -fstrict-flex-arrays and its impact
Date: Wed, 21 Dec 2022 14:46:27 +0000	[thread overview]
Message-ID: <7EE40B3B-7A01-48A1-B4BE-B0E3103C31A3@oracle.com> (raw)
In-Reply-To: <nycvar.YFH.7.77.849.2212210704310.5956@jbgna.fhfr.qr>

Hi, Richard,

Thanks a lot for your comments.

> On Dec 21, 2022, at 2:12 AM, Richard Biener <rguenther@suse.de> 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 <qing.zhao@oracle.com>
>> 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.</p>
>>     <li>Legacy debug info compression option <code>-gz=zlib-gnu</code> was removed
>>       and the option is ignored right now.</li>
>>     <li>New debug info compression option value <code>-gz=zstd</code> has been added.</li>
>> +    <li><code>-Warray-bounds=2</code> will no longer issue warnings for out of bounds
>> +      accesses to trailing struct members of one-element array type anymore. Please
>> +      add <code>-fstrict-flex-arrays=level</code> to control how the compiler treat
>> +      trailing arrays of structures as flexible array members. </li>
> 
> "Instead it diagnoses accesses to trailing arrays according to 
> <code>-fstrict-flex-arrays</code>."

Okay.
> 
>> </ul>
>> 
>> 
>> @@ -409,6 +413,17 @@ a work-in-progress.</p>
>> <h2>Other significant improvements</h2>
>> 
>> <!-- <h3 id="uninitialized">Eliminating uninitialized variables</h3> -->
>> +<h3 id="flexible array">Treating trailing arrays as flexible array members</h3>
>> +
>> +<ul>
>> + <li>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
>> +     <code>-fstrict-flex-array=level</code> to control how GCC treats the trailing
>> +     array of a structure as a flexible array member at different levels.
> 
> <code>-fstrict-flex-arrays</code> 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.


  reply	other threads:[~2022-12-21 14:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-20 16:16 Qing Zhao
2022-12-21  7:12 ` Richard Biener
2022-12-21 14:46   ` Qing Zhao [this message]
2022-12-22  7:09     ` Richard Biener
2022-12-22 16:41       ` Qing Zhao
2023-01-09  7:11         ` Richard Biener
2023-01-09 15:07           ` Qing Zhao
2023-01-10  8:06             ` Richard Biener
2023-01-10 13:25               ` Qing Zhao
2023-01-13 20:59 ` Gerald Pfeifer
2023-01-17 15:55   ` Qing Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7EE40B3B-7A01-48A1-B4BE-B0E3103C31A3@oracle.com \
    --to=qing.zhao@oracle.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=rguenther@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).