public inbox for gcc-cvs-wwwdocs@sourceware.org help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@sourceware.org> To: gcc-cvs-wwwdocs@gcc.gnu.org Subject: gcc-wwwdocs branch master updated. e9d81288aaae7626d7b511e0f84cba3e72f47b52 Date: Fri, 6 May 2022 07:02:42 +0000 (GMT) [thread overview] Message-ID: <20220506070242.BAF763857341@sourceware.org> (raw) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gcc-wwwdocs". The branch, master has been updated via e9d81288aaae7626d7b511e0f84cba3e72f47b52 (commit) via 7ec645cedf255c9ed8c96a1f05955bc9cdc8b744 (commit) from 32b0a487f8bade5c9bb2da9aecf21323509feefb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e9d81288aaae7626d7b511e0f84cba3e72f47b52 Author: Jakub Jelinek <jakub@redhat.com> Date: Fri May 6 09:02:34 2022 +0200 Releasing 12.1. diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html index cabde308..1b6385cd 100644 --- a/htdocs/gcc-12/changes.html +++ b/htdocs/gcc-12/changes.html @@ -22,9 +22,6 @@ You may also want to check out our <a href="../onlinedocs/index.html#current">full GCC documentation</a>. </p> -<p>Note: GCC 12 has not been released yet, so this document is -a work-in-progress.</p> - <!-- .................................................................. --> <h2>Caveats</h2> <ul> @@ -978,7 +975,15 @@ function Multiply (S1, S2 : Sign) return Sign is <!-- .................................................................. --> -<!-- <h2><a name="12.1">GCC 12.1</a></h2> --> +<h2><a name="12.1">GCC 12.1</a></h2> + +<p>This is the <a href="https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.0">list +of problem reports (PRs)</a> from GCC's bug tracking system that are +known to be fixed in the 12.1 release. This list might not be +complete (that is, it is possible that some PRs that have been fixed +are not listed here).</p> + +<!-- .................................................................. --> </body> </html> diff --git a/htdocs/gcc-12/index.html b/htdocs/gcc-12/index.html index 1c879589..2b9432bb 100644 --- a/htdocs/gcc-12/index.html +++ b/htdocs/gcc-12/index.html @@ -11,7 +11,24 @@ <h1>GCC 12 Release Series</h1> -<p>As of this time no releases of GCC 12 have yet been made.</p> +<p>May 6, 2022</p> + +<p>The GCC developers are pleased to announce the release of GCC 12.1.</p> + +<p>This release is a major release, containing new features (as well +as many other improvements) relative to GCC 11.x.</p> + +<h2>Release History</h2> + +<dl> + +<dt>GCC 12.1</dt> +<dd>May 6, 2022 + (<a href="changes.html">changes</a>, + <a href="http://gcc.gnu.org/onlinedocs/12.1.0/">documentation</a>) +</dd> + +</dl> <h2>References and Acknowledgements</h2> @@ -25,7 +42,7 @@ as new information becomes available.</p> <p>The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as well as test results to GCC. -This <a href="http://gcc.gnu.org/onlinedocs/gcc/Contributors.html">amazing +This <a href="http://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Contributors.html">amazing group of volunteers</a> is what makes GCC successful.</p> <p>For additional information about GCC please refer to the commit 7ec645cedf255c9ed8c96a1f05955bc9cdc8b744 Author: Jakub Jelinek <jakub@redhat.com> Date: Fri May 6 08:57:51 2022 +0200 Point into 12.1.0 onlinedocs instead of trunk. diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html index 87c8bcf8..cabde308 100644 --- a/htdocs/gcc-12/changes.html +++ b/htdocs/gcc-12/changes.html @@ -169,7 +169,7 @@ a work-in-progress.</p> routines added for Fortran and extended for C/C++ in OpenMP 5.1. In Fortran code, strictly structured blocks can be used.</li> <li>The <a - href="https://gcc.gnu.org/onlinedocs/libgomp/OpenMP-Implementation-Status.html" + href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/OpenMP-Implementation-Status.html" >OpenMP Implementation Status</a> can be found in the libgomp manual.</li> </ul> </li> @@ -179,10 +179,10 @@ a work-in-progress.</p> </li> <li>The offload target code generation for OpenMP and OpenACC can now be better adjusted using the new <a - href="https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-foffload-options" + href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload-options" ><code>-foffload-options=</code></a> flag and the pre-existing but now documented <a - href="https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-foffload" + href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/C-Dialect-Options.html#index-foffload" ><code>-foffload=</code></a> flag. </li> </ul> @@ -259,7 +259,7 @@ function Multiply (S1, S2 : Sign) return Sign is enhancements.</li> <li>Improvements to embedded-RTOS targets such as RTEMS, VxWorks and QNX. Older targets were removed or cleaned.</li> - <li>Added some <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Security-Hardening-Features.html#Security-Hardening-Features">hardening features</a>.</li> + <li>Added some <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gnat_rm/Security-Hardening-Features.html#Security-Hardening-Features">hardening features</a>.</li> </ul> <h3 id="c-family">C family</h3> @@ -274,19 +274,19 @@ function Multiply (S1, S2 : Sign) return Sign is the clang language extension was added.</li> <li>New warnings: <ul> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wbidi-chars"><code>-Wbidi-chars</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wbidi-chars"><code>-Wbidi-chars</code></a> warns about potentially misleading UTF-8 bidirectional control characters. The default is <code>-Wbidi-chars=unpaired</code> (<a href="https://gcc.gnu.org/PR103026">PR103026</a>)</li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Warray-compare"><code>-Warray-compare</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Warray-compare"><code>-Warray-compare</code></a> warns about comparisons between two operands of array type (<a href="https://gcc.gnu.org/PR97573">PR97573</a>)</li> </ul> </li> <li>Enhancements to existing warnings: <ul> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wattributes"><code>-Wattributes</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wattributes"><code>-Wattributes</code></a> has been extended so that it's possible to use <code>-Wno-attributes=ns::attr</code> or <code>-Wno-attributes=ns::</code> to suppress warnings about unknown scoped @@ -313,7 +313,7 @@ function Multiply (S1, S2 : Sign) return Sign is <li>The <code>#elifdef</code> and <code>#elifndef</code> preprocessing directives are now supported.</li> <li>The <code>printf</code> and <code>scanf</code> format checking - with <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wformat"><code>-Wformat</code></a> + with <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wformat"><code>-Wformat</code></a> now supports the <code>%b</code> format specified by C2X for binary integers, and the <code>%B</code> format recommended by C2X for <code>printf</code>. @@ -379,11 +379,11 @@ function Multiply (S1, S2 : Sign) return Sign is <code>-fno-inline</code> is not active.</li> <li>Deduction guides can be declared at class scope (<a href="https://gcc.gnu.org/PR79501">PR79501</a>)</li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuninitialized"><code>-Wuninitialized</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized"><code>-Wuninitialized</code></a> warns about using uninitialized variables in member initializer lists (<a href="https://gcc.gnu.org/PR19808">PR19808</a>) </li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wint-in-bool-context"><code>-Wint-in-bool-context</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wint-in-bool-context"><code>-Wint-in-bool-context</code></a> is now disabled when instantiating a template (<a href="https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3a2b12bc">git</a>)</li> <li>Stricter checking of attributes on friend declarations: if a friend @@ -398,13 +398,13 @@ function Multiply (S1, S2 : Sign) return Sign is and can be used to control existing pedwarns about occurrences of new C++ constructs in code using an old C++ standard dialect.</li> <li>New warning - <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmissing-requires"><code>-Wmissing-requires</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wmissing-requires"><code>-Wmissing-requires</code></a> warns about missing <code>requires</code> (<a href="https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e18e56c7">git</a>)</li> <li>The existing <code>std::is_constant_evaluated</code> in <code>if</code> warning was extended to warn in more cases (<a href="https://gcc.gnu.org/PR100995">PR100995</a>)</li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Waddress"><code>-Waddress</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Waddress"><code>-Waddress</code></a> has been enhanced so that it now warns about, for instance, comparing the address of a nonstatic member function to null (<a href="https://gcc.gnu.org/PR102103">PR102103</a>)</li> @@ -428,7 +428,7 @@ function Multiply (S1, S2 : Sign) return Sign is (<a href="https://gcc.gnu.org/PR101786">PR101786</a>)</li> <li>Support for C++17 <code>std::hardware_destructive_interference_size</code> was added, along with the - <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Winterference-size"><code>-Winterference-size</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Winterference-size"><code>-Winterference-size</code></a> warning (<a href="https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=76b75018">git</a>)</li> <li>Many bugs in the CTAD handling have been fixed @@ -520,42 +520,42 @@ function Multiply (S1, S2 : Sign) return Sign is <ul> <li>The libgccjit API gained 30 new entry points: <ul> - <li>17 new "reflection" entrypoints for querying functions and types (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-16"><code>LIBGCCJIT_ABI_16</code></a>) + <li>17 new "reflection" entrypoints for querying functions and types (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-16"><code>LIBGCCJIT_ABI_16</code></a>) </li> <li> - <a href="https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#c.gcc_jit_lvalue_set_tls_model"><code>gcc_jit_lvalue_set_tls_model</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_tls_model"><code>gcc_jit_lvalue_set_tls_model</code></a> for supporting thread-local variables - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-17"><code>LIBGCCJIT_ABI_17</code></a>) + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-17"><code>LIBGCCJIT_ABI_17</code></a>) </li> <li> - <a href="https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#c.gcc_jit_lvalue_set_link_section"><code>gcc_jit_lvalue_set_link_section</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_link_section"><code>gcc_jit_lvalue_set_link_section</code></a> for setting the link section of global variables, analogous to - <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-section-variable-attribute"><code>__attribute__((section(".section")))</code></a> - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-18"><code>LIBGCCJIT_ABI_18</code></a>) + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Variable-Attributes.html#index-section-variable-attribute"><code>__attribute__((section(".section")))</code></a> + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-18"><code>LIBGCCJIT_ABI_18</code></a>) </li> <li>4 new entrypoints for initializing global variables and creating constructors for rvalues - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-19"><code>LIBGCCJIT_ABI_19</code></a>) + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-19"><code>LIBGCCJIT_ABI_19</code></a>) </li> <li> Support for sized integer types, including 128-bit integers and helper functions for such types - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-20"><code>LIBGCCJIT_ABI_20</code></a>) + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-20"><code>LIBGCCJIT_ABI_20</code></a>) </li> <li> - <a href="https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#c.gcc_jit_context_new_bitcast"><code>gcc_jit_context_new_bitcast</code></a> for reinterpreting the bits of an rvalue as a different type - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-21"><code>LIBGCCJIT_ABI_21</code></a>) + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_bitcast"><code>gcc_jit_context_new_bitcast</code></a> for reinterpreting the bits of an rvalue as a different type + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-21"><code>LIBGCCJIT_ABI_21</code></a>) </li> <li> - <a href="https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#c.gcc_jit_lvalue_set_register_name"><code>gcc_jit_lvalue_set_register_name</code></a> for setting a specific register for a variable - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-22"><code>LIBGCCJIT_ABI_22</code></a>) + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_lvalue_set_register_name"><code>gcc_jit_lvalue_set_register_name</code></a> for setting a specific register for a variable + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-22"><code>LIBGCCJIT_ABI_22</code></a>) </li> <li> - <a href="https://gcc.gnu.org/onlinedocs/jit/topics/contexts.html#c.gcc_jit_context_set_bool_print_errors_to_stderr"><code>gcc_jit_context_set_bool_print_errors_to_stderr</code></a> - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-23"><code>LIBGCCJIT_ABI_23</code></a>) + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/contexts.html#c.gcc_jit_context_set_bool_print_errors_to_stderr"><code>gcc_jit_context_set_bool_print_errors_to_stderr</code></a> + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-23"><code>LIBGCCJIT_ABI_23</code></a>) </li> <li> 2 new entrypoints for setting the alignment of a variable - (<a href="https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#libgccjit-abi-24"><code>LIBGCCJIT_ABI_24</code></a>) + (<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/compatibility.html#libgccjit-abi-24"><code>LIBGCCJIT_ABI_24</code></a>) </li> </ul> </li> @@ -563,7 +563,7 @@ function Multiply (S1, S2 : Sign) return Sign is (<a href="https://gcc.gnu.org/PR96066">PR96066</a>, <a href="https://gcc.gnu.org/PR96067">PR96067</a>) </li> - <li><a href="https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html#c.gcc_jit_context_new_cast">gcc_jit_context_new_cast</a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_cast">gcc_jit_context_new_cast</a> is now able to handle truncation and extension between different integer types (<a href="https://gcc.gnu.org/PR95498">PR95498</a>) @@ -760,7 +760,7 @@ function Multiply (S1, S2 : Sign) return Sign is <h3 id="pru">PRU</h3> <ul> <li>The <a - href="https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html#PRU-Named-Address-Spaces" + href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Named-Address-Spaces.html#PRU-Named-Address-Spaces" ><code>__regio_symbol</code></a> variable qualifier has been added. It allows easier access in C programs to the <code>__R30</code> and <code>__R31</code> CPU I/O registers. @@ -816,54 +816,54 @@ function Multiply (S1, S2 : Sign) return Sign is <h2 id="analyzer">Improvements to Static Analyzer</h2> <ul> - <li>The analyzer has gained a <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-of-uninitialized-value"><code>-Wanalyzer-use-of-uninitialized-value</code></a> + <li>The analyzer has gained a <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-use-of-uninitialized-value"><code>-Wanalyzer-use-of-uninitialized-value</code></a> warning, similar to - <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuninitialized"><code>-Wuninitialized</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized"><code>-Wuninitialized</code></a> and - <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmaybe-uninitialized"><code>-Wmaybe-uninitialized</code></a>, + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized"><code>-Wmaybe-uninitialized</code></a>, but based on an interprocedural path-sensitive analysis (<a href="https://gcc.gnu.org/PR95006">PR95006</a>). <p>Such warnings are not disabled by the new - <a href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-ftrivial-auto-var-init"><code>-ftrivial-auto-var-init</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init"><code>-ftrivial-auto-var-init</code></a> (see below), as the latter is considered a mitigation option.</p> </li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const"><code>-Wanalyzer-write-to-const</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-const"><code>-Wanalyzer-write-to-const</code></a> and - <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal"><code>-Wanalyzer-write-to-string-literal</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-write-to-string-literal"><code>-Wanalyzer-write-to-string-literal</code></a> will now check for - <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html"><code>__attribute__ ((access, ....))</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html"><code>__attribute__ ((access, ....))</code></a> on calls to externally-defined functions, and complain about read-only regions pointed to by arguments marked with a <code>write_only</code> or <code>read_write</code> attribute (<a href="https://gcc.gnu.org/PR104793">PR104793</a>). </li> <li>The analyzer's "taint" mode, activated by - <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker"><code>-fanalyzer-checker=taint</code></a> - (in addition to <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-fanalyzer"><code>-fanalyzer</code></a>), + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer-checker"><code>-fanalyzer-checker=taint</code></a> + (in addition to <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-fanalyzer"><code>-fanalyzer</code></a>), has gained four new taint-based warnings: <ul> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size"><code>-Wanalyzer-tainted-allocation-size</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-allocation-size"><code>-Wanalyzer-tainted-allocation-size</code></a> for e.g. attacker-controlled <code>malloc</code> and <code>alloca</code>, </li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor"><code>-Wanalyzer-tainted-divisor</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-divisor"><code>-Wanalyzer-tainted-divisor</code></a> for detecting where an attacker can inject a divide-by-zero, </li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset"><code>-Wanalyzer-tainted-offset</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-offset"><code>-Wanalyzer-tainted-offset</code></a> for attacker-controlled pointer offsets, </li> - <li><a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size"><code>-Wanalyzer-tainted-size</code></a> + <li><a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size"><code>-Wanalyzer-tainted-size</code></a> for attacker-controlled values being used as a size parameter to calls to <code>memset</code> or to functions marked with - <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html"><code>__attribute__ ((access, ....))</code></a>. + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html"><code>__attribute__ ((access, ....))</code></a>. </li> </ul> <p>The existing - <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index"><code>-Wanalyzer-tainted-array-index</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-array-index"><code>-Wanalyzer-tainted-array-index</code></a> has been reworded to talk about "attacker-controlled" rather than "tainted" values, for consistency with the new warnings. </p> - <p>A new <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-tainted_005fargs-function-attribute"><code>__attribute__ ((tainted_args))</code></a> has been + <p>A new <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html#index-tainted_005fargs-function-attribute"><code>__attribute__ ((tainted_args))</code></a> has been added to the C and C++ frontends, usable on functions, and on function pointer callback fields in structs. The analyzer's taint mode will treat all parameters and buffers pointed to by parameters @@ -873,7 +873,7 @@ function Multiply (S1, S2 : Sign) return Sign is </p> </li> <li>The analyzer now respects - <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-const-function-attribute"><code>__attribute__((const))</code></a>: + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Common-Function-Attributes.html#index-const-function-attribute"><code>__attribute__((const))</code></a>: it will treat such functions as returning the same value when given the same inputs (<a href="https://gcc.gnu.org/PR104434">PR104434</a>), and as having no side effects (<a href="https://gcc.gnu.org/PR104576">PR104576</a>). @@ -939,18 +939,18 @@ function Multiply (S1, S2 : Sign) return Sign is <h3 id="uninitialized">Eliminating uninitialized variables</h3> <ul> - <li>GCC can now <a href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-ftrivial-auto-var-init">initialize all stack variables implicitly</a>, including + <li>GCC can now <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init">initialize all stack variables implicitly</a>, including padding. This is intended to eliminate all classes of uninitialized stack variable flaws. Lack of explicit initialization will still warn when - <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wuninitialized"><code>-Wuninitialized</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Warning-Options.html#index-Wuninitialized"><code>-Wuninitialized</code></a> is active. For best debugging, use of the new command-line option - <a href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-ftrivial-auto-var-init"><code>-ftrivial-auto-var-init=pattern</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init"><code>-ftrivial-auto-var-init=pattern</code></a> can be used to fill variables with a repeated <code>0xFE</code> 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 - <a href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-ftrivial-auto-var-init"><code>-ftrivial-auto-var-init=zero</code></a> + <a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Optimize-Options.html#index-ftrivial-auto-var-init"><code>-ftrivial-auto-var-init=zero</code></a> can be used to fill variables with <code>0x00</code>, which tends to provide a safer state for bugs (e.g. pointers are <code>NULL</code>, strings ----------------------------------------------------------------------- Summary of changes: htdocs/gcc-12/changes.html | 115 +++++++++++++++++++++++---------------------- htdocs/gcc-12/index.html | 21 ++++++++- 2 files changed, 79 insertions(+), 57 deletions(-) hooks/post-receive -- gcc-wwwdocs
reply other threads:[~2022-05-06 7:02 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20220506070242.BAF763857341@sourceware.org \ --to=jakub@sourceware.org \ --cc=gcc-cvs-wwwdocs@gcc.gnu.org \ /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: linkBe 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).