FYI, just committed the change:

https://gcc.gnu.org/gcc-12/changes.html


Qing
> On Sep 29, 2021, at 9:18 AM, Qing Zhao via Gcc-patches 
> <gcc-patches@gcc.gnu.org> wrote:
> 
> 
> 
>> On Sep 29, 2021, at 5:39 AM, Richard Biener <rguent...@suse.de> wrote:
>> 
>> On Tue, 28 Sep 2021, Kees Cook wrote:
>> 
>>> On Tue, Sep 28, 2021 at 08:31:13PM +0000, Qing Zhao wrote:
>>>> Hi,
>>>> 
>>>> This is the patch for the gcc12 changes  per your request. 
>>>> 
>>>> Kees provided most of the wording. 
>>>> 
>>>> Please take a look and let’s know whether it’s good for commit?
>>>> 
>>>> thanks.
>>>> 
>>>> Qing
>>>> 
>>>> ================================================
>>>> 
>>>> 
>>>> From: qing zhao <qing.z...@oracle.com>
>>>> Date: Tue, 28 Sep 2021 12:01:42 -0700
>>>> Subject: [PATCH] gcc-12/changes.html: Uninitialized stack variables
>>>> initialization update
>>>> 
>>>>    * htdocs/gcc-12/changes.html (Eliminating uninitialized variables):
>>>>    Item about the support for automatic static variable initialization.
>>>> ---
>>>> htdocs/gcc-12/changes.html | 19 +++++++++++++++++++
>>>> 1 file changed, 19 insertions(+)
>>>> 
>>>> diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html
>>>> index 1f156a9..8e2979c 100644
>>>> --- a/htdocs/gcc-12/changes.html
>>>> +++ b/htdocs/gcc-12/changes.html
>>>> @@ -245,6 +245,25 @@ a work-in-progress.</p>
>>>> <!-- .................................................................. -->
>>>> <h2>Other significant improvements</h2>
>>>> 
>>>> +<h3 id="uninitialized">Eliminating uninitialized variables</h3>
>>>> +
>>>> +<ul>
>>>> +  <li>GCC can now initialize all stack variables implicitly, including
>>>> +      padding. This is intended to eliminate all classes of uninitialized
>>>> +      stack variable flaws. Lack of explicit initialization will still
>>>> +      warn when <code>-Wuninitialized</code> is active. For best
>>>> +      debugging, use of the new command-line option
>>>> +      <code>-ftrivial-auto-var-init=pattern</code> can be used to fill
>>>> +      variables with a repeated 0xFE pattern, which tends to illuminate
>>>> +      many bugs (e.g. pointers receive invalid addresses, sizes and 
>>>> indices
>>>> +      are very large). For best production results, the new command-line
>>>> +      option <code>-ftrivial-auto-var-init=zero</code> can be used to
>>>> +      fill variables with 0x00, which tends to provide a safer state for
>>>> +      bugs (e.g. pointers are NULL, strings are NULL filled, and sizes
>>> 
>>> Minor nit: I've always been corrected that "NULL" refers to a pointer, and
>>> "NUL" refers to the "null character", so the latter use of NULL should be
>>> "NUL": ... pointers are NULL, strings are NUL filled, and size ...
>>> 
>>> I mix this up all the time, so apologies if that got introduced by me!
>>> :)
>> 
>> Also things like 0xFE and NULL should be wrapped in <code></code>, 
>> otherwise it looks good to me.
> 
> Okay, will update them before committing.
> 
> Thanks.
> 
> Qing
>> 
>> Thanks,
>> Richard.
>> 
>>> -Kees
>>> 
>>>> +      and indices are 0).
>>>> +  </li>
>>>> +</ul>
>>>> +
>>>> <h3 id="debug">Debugging formats</h3>
>>>> 
>>>> <ul>
>>>> -- 
>>>> 1.9.1
>>>> 
>>>> 
>>> 
>>> 
>> 
>> -- 
>> Richard Biener <rguent...@suse.de>
>> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
>> Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)
> 

Reply via email to