diff --git a/clang/test/CXX/drs/dr0xx.cpp b/clang/test/CXX/drs/dr0xx.cpp --- a/clang/test/CXX/drs/dr0xx.cpp +++ b/clang/test/CXX/drs/dr0xx.cpp @@ -4,6 +4,7 @@ // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple // RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple // RUN: %clang_cc1 -std=c++23 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple +// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple namespace dr1 { // dr1: no namespace X { extern "C" void dr1_f(int a = 1); } @@ -1018,7 +1019,7 @@ }; } -namespace dr78 { // dr78: sup ???? +namespace dr78 { // dr78: no // Under DR78, this is valid, because 'k' has static storage duration, so is // zero-initialized. const int k; // expected-error {{default initialization of an object of const}} diff --git a/clang/test/CXX/drs/dr2xx.cpp b/clang/test/CXX/drs/dr2xx.cpp --- a/clang/test/CXX/drs/dr2xx.cpp +++ b/clang/test/CXX/drs/dr2xx.cpp @@ -4,6 +4,7 @@ // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors // RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors // RUN: %clang_cc1 -std=c++23 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors +// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions -pedantic-errors // PR13819 -- __SIZE_TYPE__ is incompatible. typedef __SIZE_TYPE__ size_t; // expected-error 0-1 {{extension}} @@ -682,6 +683,17 @@ G::~G() {} } +namespace dr253 { // dr253: 3.9 +struct Z { + operator int() const { return 0; } +}; + +void f() { + const Z z1; + const Z z2 = { }; +} +} // namespace dr253 + namespace dr254 { // dr254: yes template struct A { typedef typename T::type type; // ok even if this is a typedef-name, because diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -505,7 +505,7 @@ 78 CD1 Section 8.5 paragraph 9 should state it only applies to non-static objects - Superseded by ???? + No 79 @@ -1556,7 +1556,7 @@ 253 C++17 Why must empty or fully-initialized const objects be initialized? - Unknown + Clang 3.9 254 @@ -3021,7 +3021,7 @@ 497 CD1 Missing required initialization in example - Superseded by 253 + Superseded by 253 498