--- htdocs/gcc-11/changes.html | 45 ++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 11 deletions(-)
diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html index 3c18ef18..93c421e3 100644 --- a/htdocs/gcc-11/changes.html +++ b/htdocs/gcc-11/changes.html @@ -168,12 +168,20 @@ a work-in-progress.</p> <h3 id="c-family">C family</h3> <ul> - <li>New attribute: + <li>New attributes: <ul> <li>The <code>no_stack_protector</code> attribute has been added to mark functions which should not be instrumented with stack protection (<code>-fstack-protector</code>).</li> + <li>The existing + <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-malloc-function-attribute">malloc</a> + attribute has been extended so that it can be used to identify + allocator/deallocator API pairs. A new + <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#-Wmismatched-dealloc">-Wmismatched-dealloc</a> + warning will complain about incorrect calls. Additionally, the + static analyzer will use these attributes when checking for leaks, + double-frees, use-after-frees, and similar issues. + </li> </ul> - </li> <li>New warnings: <ul> <li><code>-Wsizeof-array-div</code>, enabled by <code>-Wall</code>, warns @@ -507,15 +515,30 @@ a work-in-progress.</p> has been completely rewritten for GCC 11, fixing numerous bugs, and allowing for the analyzer to scale to larger C source files. </li> - <li>As preliminary work towards eventually supporting C++, the - <code>malloc</code>/<code>free</code> checking within - <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html">-fanalyzer</a> - has been generalized to also check <code>new</code>/<code>delete</code> - and <code>new[]</code>/<code>delete[]</code>, adding a new - <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-mismatching-deallocation">-Wanalyzer-mismatching-deallocation</a> - warning. However, C++ is not yet properly supported by - <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html">-fanalyzer</a> - (for example, exception-handling is unimplemented).</li> + <li>The analysis of allocations and deallocations has been generalized + beyond <code>malloc</code> and <code>free</code>. + <ul> + <li>As preliminary work towards eventually supporting C++, the + <code>malloc</code>/<code>free</code> checking will also + check <code>new</code>/<code>delete</code> + and <code>new[]</code>/<code>delete[]</code>. + However, C++ is not yet properly supported by + <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html">-fanalyzer</a> + (for example, exception-handling is unimplemented). + </li> + <li>As noted above, the existing + <a href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-malloc-function-attribute">malloc</a> + attribute has been extended so that it can be used to identify + allocator/deallocator API pairs. The analyzer will use these + attributes when checking for leaks, double-frees, use-after-frees, and + similar issues. + </li> + <li>A new + <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-mismatching-deallocation">-Wanalyzer-mismatching-deallocation</a> + warning has been added, covering such mismatches as using + scalar <code>delete</code> rather vector <code>delete[]</code>. + </ul> + </li> <li>The analyzer has gained warnings <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-negative">-Wanalyzer-shift-count-negative</a>, <a href="https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-shift-count-overflow">-Wanalyzer-shift-count-overflow</a>, -- 2.26.2