From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Received: by sourceware.org (Postfix, from userid 1734)
id DAE053857C42; Tue, 15 Sep 2020 01:09:23 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DAE053857C42
To: gcc-cvs-wwwdocs@gcc.gnu.org
Subject: gcc-wwwdocs branch master updated.
2feaab534eb731bfc91f41b9e6f4afe9f6898828
X-Git-Refname: refs/heads/master
X-Git-Reftype: branch
X-Git-Oldrev: 2a1071ff337f3c060c12d3d4c65cd39cf3b01954
X-Git-Newrev: 2feaab534eb731bfc91f41b9e6f4afe9f6898828
Message-Id: <20200915010923.DAE053857C42@sourceware.org>
Date: Tue, 15 Sep 2020 01:09:23 +0000 (GMT)
From: Marek Polacek
X-BeenThere: gcc-cvs-wwwdocs@gcc.gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Gcc-cvs-wwwdocs mailing list
List-Unsubscribe: ,
List-Archive:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Tue, 15 Sep 2020 01:09:24 -0000
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 2feaab534eb731bfc91f41b9e6f4afe9f6898828 (commit)
from 2a1071ff337f3c060c12d3d4c65cd39cf3b01954 (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 2feaab534eb731bfc91f41b9e6f4afe9f6898828
Author: Marek Polacek
Date: Mon Sep 14 21:08:09 2020 -0400
Add porting_to for GCC 11.
diff --git a/htdocs/gcc-11/porting_to.html b/htdocs/gcc-11/porting_to.html
new file mode 100644
index 00000000..e51285d9
--- /dev/null
+++ b/htdocs/gcc-11/porting_to.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+Porting to GCC 11
+
+
+
+
+
Porting to GCC 11
+
+
+The GCC 11 release series differs from previous GCC releases in
+a number of ways. Some of these are a result
+of bug fixing, and some old behaviors have been intentionally changed
+to support new standards, or relaxed in standards-conforming ways to
+facilitate compilation or run-time performance.
+
+
+
+Some of these changes are user visible and can cause grief when
+porting to GCC 11. This document is an effort to identify common issues
+and provide solutions. Let us know if you have suggestions for improvements!
+
+
+
+
+
+
C++ language issues
+
+
Default standard is now GNU++17
+
+
+GCC 11 defaults to -std=gnu++17 instead of -std=gnu++14:
+the C++17 standard, plus GNU extensions.
+This brings several changes that users should be aware of. The following
+paragraphs describe some of these changes and suggest how to deal with them.
+
+
+
Some users might prefer to stay with gnu++14, in which case we suggest to
+use the -std=gnu++14 command-line option, perhaps by putting it
+in CXXFLAGS or similar variables in Makefiles.
+
+
Template template parameter matching changes
+
+G++, starting with
+G++ 7,
+implements C++17
+P0522R0,
+Matching of template template-arguments excludes compatible templates. As a
+consequence, the following test is now rejected:
+
+ template <int N, int M = N> class A;
+ template <int N, int M> void fn(A<N, M> &) {}
+ template <int N, template <int> class TT> void fn(TT<N> &);
+ template void fn(A<3> &);
+
+
+because A is now considered a valid argument for TT,
+so both function templates are valid candidates, and neither is more specialized
+than the other, so it's ambiguous.
+
+
+The new behavior can be disabled independently of other C++17 features with
+-fno-new-ttp-matching.
+