On 11/02/16 17:39 +0100, Marek Polacek wrote:
On Thu, Feb 11, 2016 at 03:26:13PM +0000, Jonathan Wakely wrote:
On 11/02/16 15:20 +0100, Marek Polacek wrote:
>Does this look ok?
Looks OK, although how about stressing that it was only allowed as an
extension previously, e.g. ...
So like this? I've also added a note about stricter flexarr members rules.
I think the first paragraph is a bit confusing. Both sentences are
true, but the first does not follow from the second, so "thus" is not
appropriate. Maybe just change "Thus" to "As a GNU extension".
Index: porting_to.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/porting_to.html,v
retrieving revision 1.9
diff -u -r1.9 porting_to.html
--- porting_to.html 10 Feb 2016 17:21:54 -0000 1.9
+++ porting_to.html 11 Feb 2016 16:38:38 -0000
@@ -269,6 +269,41 @@
to port the code to use C++11's <code>std::unique_ptr</code> instead.
</p>
+<h3>'constexpr' needed for in-class initialization of static data member</h3>
+
+<p>
+Since C++11, the <code>constexpr</code> keyword is needed when initializing
+a non-integral static data member in a class. Thus the following program is
+accepted in C++03 (albeit with a <tt>-Wpedantic</tt> warning):
+</p>
+
+<pre><code>
+struct X {
+ const static double i = 10;
+};
+</pre></code>
+
+<p>
+The C++11 standard supports that in-class initialization using
+<code>constexpr</code> instead, so the GNU extension is no longer supported for
+C++11 or later. Programs relying on the extension will be rejected with an
+error. The fix is to use <code>constexpr</code> instead of <code>const</code>.
+</p>
+
+<h3>Stricter flexible array member rules</h3>
+
+<p>
+As of this release, the C++ compiler is now more strict about flexible array
+member rules. As a consequence, the following code is no longer accepted:
+</p>
+
+<pre><code>
+union U {
+ int i;
+ char a[];
+};
+</pre></code>
+
<h2>-Wmisleading-indentation</h2>
<p>
A new warning <code>-Wmisleading-indentation</code> was added
Marek