From: Richard Smith Date: Fri, 13 Jan 2017 00:57:54 +0000 (+0000) Subject: Update C++ status pages for Clang 4 branch: X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=71e0414411e56229616028c32a92b3cb8b378807;p=clang Update C++ status pages for Clang 4 branch: * Update version number in DR tests from 4.0 to 4 * Teach make_cxx_dr_status script about version numbers that don't contain a period. * Update cxx_status.html and cxx_dr_status.html to list Clang 4 features as "Clang 4" rather than "SVN" Clang 4 features are still listed in yellow rather than green until release. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291871 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CXX/drs/dr0xx.cpp b/test/CXX/drs/dr0xx.cpp index c988b6aba5..055f40f98f 100644 --- a/test/CXX/drs/dr0xx.cpp +++ b/test/CXX/drs/dr0xx.cpp @@ -1032,7 +1032,7 @@ namespace dr91 { // dr91: yes int k = f(U()); } -namespace dr92 { // dr92: 4.0 c++17 +namespace dr92 { // dr92: 4 c++17 void f() throw(int, float); // expected-error 0-1{{ISO C++1z does not allow}} expected-note 0-1{{use 'noexcept}} void (*p)() throw(int) = &f; // expected-error 0-1{{ISO C++1z does not allow}} expected-note 0-1{{use 'noexcept}} #if __cplusplus <= 201402L diff --git a/test/CXX/drs/dr12xx.cpp b/test/CXX/drs/dr12xx.cpp index 72d8d683ab..45b33f9d7d 100644 --- a/test/CXX/drs/dr12xx.cpp +++ b/test/CXX/drs/dr12xx.cpp @@ -3,7 +3,7 @@ // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors // RUN: %clang_cc1 -std=c++1z %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -namespace dr1213 { // dr1213: 4.0 +namespace dr1213 { // dr1213: 4 #if __cplusplus >= 201103L using T = int[3]; int &&r = T{}[1]; @@ -26,7 +26,7 @@ struct Derived : Base { }; } // dr1250 -namespace dr1295 { // dr1295: 4.0 +namespace dr1295 { // dr1295: 4 struct X { unsigned bitfield : 4; }; diff --git a/test/CXX/drs/dr13xx.cpp b/test/CXX/drs/dr13xx.cpp index 28e667f77f..f35ead7b5e 100644 --- a/test/CXX/drs/dr13xx.cpp +++ b/test/CXX/drs/dr13xx.cpp @@ -31,7 +31,7 @@ namespace dr1315 { // dr1315: partial // expected-error@-1 {{type of specialized non-type template argument depends on a template parameter of the partial specialization}} } -namespace dr1330 { // dr1330: 4.0 c++11 +namespace dr1330 { // dr1330: 4 c++11 // exception-specifications are parsed in a context where the class is complete. struct A { void f() throw(T) {} // expected-error 0-1{{C++1z}} expected-note 0-1{{noexcept}} @@ -175,7 +175,7 @@ namespace dr1359 { // dr1359: 3.5 #endif } -namespace dr1388 { // dr1388: 4.0 +namespace dr1388 { // dr1388: 4 template void f(T..., A); // expected-note 1+{{candidate}} expected-error 0-1{{C++11}} template void g(T..., int); // expected-note 1+{{candidate}} expected-error 0-1{{C++11}} template void h(T..., A); // expected-note 1+{{candidate}} expected-error 0-1{{C++11}} diff --git a/test/CXX/drs/dr14xx.cpp b/test/CXX/drs/dr14xx.cpp index 9e724d9183..116437b1ab 100644 --- a/test/CXX/drs/dr14xx.cpp +++ b/test/CXX/drs/dr14xx.cpp @@ -343,7 +343,7 @@ namespace dr1490 { // dr1490: 3.7 c++11 std::initializer_list{"abc"}; // expected-error {{expected unqualified-id}}} } // dr190 -namespace dr1495 { // dr1495: 4.0 +namespace dr1495 { // dr1495: 4 // Deduction succeeds in both directions. template struct A {}; // expected-note {{template is declared here}} template struct A {}; // expected-error {{class template partial specialization is not more specialized}} diff --git a/test/CXX/drs/dr15xx.cpp b/test/CXX/drs/dr15xx.cpp index fb0d9334f6..a68928f727 100644 --- a/test/CXX/drs/dr15xx.cpp +++ b/test/CXX/drs/dr15xx.cpp @@ -3,7 +3,7 @@ // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown %s -verify -fexceptions -fcxx-exceptions -pedantic-errors // RUN: %clang_cc1 -std=c++1z -triple x86_64-unknown-unknown %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -namespace dr1512 { // dr1512: 4.0 +namespace dr1512 { // dr1512: 4 void f(char *p) { if (p > 0) {} // expected-error {{ordered comparison between pointer and zero}} #if __cplusplus >= 201103L @@ -135,7 +135,7 @@ namespace dr1512 { // dr1512: 4.0 } } -namespace dr1518 { // dr1518: 4.0 +namespace dr1518 { // dr1518: 4 #if __cplusplus >= 201103L struct Z0 { // expected-note 0+ {{candidate}} explicit Z0() = default; // expected-note 0+ {{here}} diff --git a/test/CXX/drs/dr16xx.cpp b/test/CXX/drs/dr16xx.cpp index 02aa5f9909..c0b7c29e5d 100644 --- a/test/CXX/drs/dr16xx.cpp +++ b/test/CXX/drs/dr16xx.cpp @@ -86,7 +86,7 @@ namespace dr1645 { // dr1645: 3.9 #endif } -namespace dr1653 { // dr1653: 4.0 c++17 +namespace dr1653 { // dr1653: 4 c++17 void f(bool b) { ++b; b++; diff --git a/test/CXX/drs/dr18xx.cpp b/test/CXX/drs/dr18xx.cpp index 436bccc8e4..e4ec199fca 100644 --- a/test/CXX/drs/dr18xx.cpp +++ b/test/CXX/drs/dr18xx.cpp @@ -7,7 +7,7 @@ // expected-no-diagnostics #endif -void dr1891() { // dr1891: 4.0 +void dr1891() { // dr1891: 4 #if __cplusplus >= 201103L int n; auto a = []{}; // expected-note 2{{candidate}} expected-note 2{{here}} diff --git a/test/CXX/drs/dr2xx.cpp b/test/CXX/drs/dr2xx.cpp index a9f0c8fcc9..68261f6c00 100644 --- a/test/CXX/drs/dr2xx.cpp +++ b/test/CXX/drs/dr2xx.cpp @@ -679,7 +679,7 @@ namespace dr258 { // dr258: yes } f; // expected-error {{abstract}} } -namespace dr259 { // dr259: 4.0 +namespace dr259 { // dr259: 4 template struct A {}; template struct A; // expected-note {{previous}} template struct A; // expected-error {{duplicate explicit instantiation}} diff --git a/test/CXX/drs/dr5xx.cpp b/test/CXX/drs/dr5xx.cpp index f065128cd4..89e404f5fd 100644 --- a/test/CXX/drs/dr5xx.cpp +++ b/test/CXX/drs/dr5xx.cpp @@ -863,7 +863,7 @@ namespace dr580 { // dr580: partial // dr582: na -namespace dr583 { // dr583: 4.0 +namespace dr583 { // dr583: 4 // see n3624 int *p; bool b1 = p < 0; // expected-error {{ordered comparison between pointer and zero}} diff --git a/test/CXX/drs/dr6xx.cpp b/test/CXX/drs/dr6xx.cpp index 9dfcc7d6b4..8b9a699607 100644 --- a/test/CXX/drs/dr6xx.cpp +++ b/test/CXX/drs/dr6xx.cpp @@ -142,7 +142,7 @@ namespace dr615 { // dr615: yes static int n = f(); } -namespace dr616 { // dr616: 4.0 +namespace dr616 { // dr616: 4 #if __cplusplus >= 201103L struct S { int n; } s; S f(); diff --git a/www/cxx_dr_status.html b/www/cxx_dr_status.html index c36adfdfad..a0781458a8 100644 --- a/www/cxx_dr_status.html +++ b/www/cxx_dr_status.html @@ -591,7 +591,7 @@ 92 WP Should exception-specifications be part of the type system? - SVN (C++17 onwards) + Clang 4 (C++17 onwards) 93 @@ -1594,7 +1594,7 @@ accessible? 259 CD1 Restrictions on explicit specialization and instantiation - SVN + Clang 4 260 @@ -3541,7 +3541,7 @@ and POD class 583 CD3 Relational pointer comparisons against the null pointer constant - SVN + Clang 4 584 @@ -3739,7 +3739,7 @@ and POD class 616 CD3 Definition of “indeterminate value” - SVN + Clang 4 617 @@ -7093,7 +7093,7 @@ and POD class 1213 CD3 Array subscripting and xvalues - SVN + Clang 4 1214 @@ -7585,7 +7585,7 @@ and POD class 1295 CD3 Binding a reference to an rvalue bit-field - SVN + Clang 4 1296 @@ -7795,7 +7795,7 @@ and POD class 1330 CD3 Delayed instantiation of noexcept specifiers - SVN (C++11 onwards) + Clang 4 (C++11 onwards) 1331 @@ -8143,7 +8143,7 @@ and POD class 1388 CD3 Missing non-deduced context following a function parameter pack - SVN + Clang 4 1389 @@ -8785,7 +8785,7 @@ and POD class 1495 CD3 Partial specialization of variadic class template - SVN + Clang 4 1496 @@ -8887,7 +8887,7 @@ and POD class 1512 CD3 Pointer comparison vs qualification conversions - SVN + Clang 4 1513 @@ -8923,7 +8923,7 @@ and POD class 1518 DRWP Explicit default constructors and copy-list-initialization - SVN + Clang 4 1519 @@ -9733,7 +9733,7 @@ and POD class 1653 WP Removing deprecated increment of bool - SVN (C++17 onwards) + Clang 4 (C++17 onwards) 1654 @@ -11161,7 +11161,7 @@ and POD class 1891 DRWP Move constructor/assignment for closure class - SVN + Clang 4 1892 diff --git a/www/cxx_status.html b/www/cxx_status.html index 675cc6f7a8..eb0beeb185 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -612,7 +612,7 @@ as the draft C++1z standard evolves. Make exception specifications part of the type system P0012R1 - SVN + Clang 4 __has_include in preprocessor conditionals @@ -679,7 +679,7 @@ as the draft C++1z standard evolves. Dynamic memory allocation for over-aligned data P0035R4 - SVN + Clang 4 Template argument deduction for class templates @@ -689,17 +689,17 @@ as the draft C++1z standard evolves. Non-type template parameters with auto type P0127R2 - SVN + Clang 4 Guaranteed copy elision P0135R1 - SVN + Clang 4 Stricter expression evaluation order P0145R3 - SVN (10) + Clang 4 (10) P0400R0 @@ -722,7 +722,7 @@ as the draft C++1z standard evolves. Structured bindings P0217R3 - SVN + Clang 4 Separate variable and condition for if and switch @@ -738,12 +738,12 @@ as the draft C++1z standard evolves. Removing deprecated dynamic exception specifications P0003R5 - SVN + Clang 4 Pack expansions in using-declarations P0195R2 - SVN + Clang 4 @@ -765,10 +765,10 @@ reverse construction order in that ABI.
(12): Despite being the the resolution to a Defect Report, this feature is disabled by default in all language versions, and can be enabled -explicitly with the flag -frelaxed-template-template-args. The change -to the standard lacks a corresponding change for template partial ordering, -resulting in ambiguity errors for reasonable and previously-valid code. This -issue is expected to be rectified soon. +explicitly with the flag -frelaxed-template-template-args in Clang 4. +The change to the standard lacks a corresponding change for template partial +ordering, resulting in ambiguity errors for reasonable and previously-valid +code. This issue is expected to be rectified soon.

@@ -802,8 +802,8 @@ and library features that are not part of standard C++.

- - SVN (P0096R3) + + Clang 4 (P0096R3)