On 04/04/2018 01:43 AM, Jakub Jelinek wrote:
Hi!
Following patch documents store merging improvements, -fsanitize=builtin,
-fsanitize=pointer-overflow and C++2A progress.
Ok for wwwdocs?
--- changes.html 3 Apr 2018 06:52:04 -0000 1.51
+++ changes.html 4 Apr 2018 07:41:06 -0000
@@ -113,6 +113,21 @@ a work-in-progress.</h2>
possible for the user to have a finer-grained control over the loop
unrolling optimization.
</li>
+ <li>
+ The store merging pass has been enhanced to handle bitfields and not
Just a minor nit: I believe the established spelling is bit-fields
(as you used in the last hunk below).
Martin
+ just constant stores, but also data copying from adjacent memory
+ locations into other adjacent memory locations, including bitwise
+ logical operations on the data. The pass can also handle byte swapping
+ into memory locations.
+ </li>
+ <li>
+ The undefined behavior sanitizer gained two new options included in
+ <code>-fsanitize=undefined</code>: <code>-fsanitize=builtin</code> which
+ diagnoses at runtime invalid arguments to <code>__builtin_clz</code> or
+ <code>__builtin_ctz</code> prefixed builtins, and
+ <code>-fsanitize=pointer-overflow</code> which performs cheap runtime
+ tests for pointer wrapping.
+ </li>
</ul>
@@ -187,7 +202,17 @@ a work-in-progress.</h2>
<h3 id="cxx">C++</h3>
<ul>
- <li></li>
+ <li>
+ The C++ front end has experimental support for some of the upcoming C++2a
+ draft features with the <code>-std=c++2a</code> or
<code>-std=gnu++2a</code>
+ flags, including designated initializers, default member initializers for
+ bit-fields, <code>__VA_OPT__</code> (except that
+ <code>#__VA_OPT__</code> is unsupported), lambda <code>[=, this]</code>
+ captures, etc.
+ For a full list of new features,
+ see <a href="https://gcc.gnu.org/projects/cxx-status.html#cxx2a">the C++
+ status page</a>.
+ </li>
</ul>
<h3 id="fortran">Fortran</h3>
Jakub