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) >