From 4993268bd266b8e47e3585c65631b22a07e9ae2c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 9 Feb 2016 22:48:14 +0000 Subject: [PATCH] Update documentation to reflect that libc++abi provides __cxa_thread_atexit (and has for quite a while). Also document that we have not yet implemented the new inheriting constructor rules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260311 91177308-0d34-0410-b5e6-96231b3b80d8 --- www/cxx_status.html | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/www/cxx_status.html b/www/cxx_status.html index fb458ca082..df8c395d4e 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -67,8 +67,7 @@ patches are needed to make libstdc++-4.4libstdc++-4.6 and libstdc++-4.7 work with Clang -releases prior to version 3.2 in C++11 mode. thread_local support -currently requires the C++ runtime library from g++-4.8 or later.

+releases prior to version 3.2 in C++11 mode. @@ -373,7 +372,7 @@ currently requires the C++ runtime library from g++-4.8 or later.

- + @@ -402,7 +401,7 @@ currently requires the C++ runtime library from g++-4.8 or later.

- +
Thread-local storage N2659Clang 3.3Clang 3.3 (5)
Dynamic initialization and destruction with concurrency
Extended integral types N1988N/A (5)N/A (6)
@@ -415,7 +414,11 @@ such as Clang that does not provide garbage collection.
strong compare-exchanges.
(4): memory_order_consume is lowered to memory_order_acquire.
-(5): No compiler changes are required for an implementation +(5): thread_local support +requires a C++ runtime library providing __cxa_thread_atexit, such +as libc++abi 3.6 or later, +or libsupc++ 4.8 or later.
+(6): No compiler changes are required for an implementation such as Clang that does not provide any extended integer types. __int128 is not treated as an extended integer type, because changing intmax_t would be an ABI-incompatible @@ -501,12 +504,12 @@ Clang version in which each feature became available.

C++ Sized Deallocation N3778 - Clang 3.4 (6) + Clang 3.4 (7)

-(6): In Clang 3.7 and later, sized deallocation is only enabled +(7): In Clang 3.7 and later, sized deallocation is only enabled if the user passes the -fsized-deallocation flag. The user must supply definitions of the sized deallocation functions, either by providing them explicitly or by using a C++ standard library that does. libstdc++ @@ -517,9 +520,9 @@ version 3.7.

C++1z implementation status

-

Clang has highly experimental support for some proposed features of -the C++ standard following C++14, -provisionally named C++1z. The following table describes which C++1z features +

Clang has experimental support for some proposed features of +the C++ standard following C++14, provisionally named C++1z. +The following table describes which C++1z features have been implemented in Clang and in which Clang version they became available.

@@ -564,7 +567,7 @@ as the draft C++1z standard evolves.

New auto rules for direct-list-initialization N3922 - Clang 3.8 (7) + Clang 3.8 (8) @@ -613,10 +616,15 @@ as the draft C++1z standard evolves.

P0061R1 Yes + + New specification for inheriting constructors (DR1941 et al) + P0136R1 + No +

-(7): This is a backwards-incompatible change that is applied to +(8): This is a backwards-incompatible change that is applied to all language versions that allow type deduction from auto (per the request of the C++ committee). In Clang 3.7, a warning is emitted for all cases that would change meaning. -- 2.50.1