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)
|