[clang] 202b327 - [DOC] Add DR1734 and DR1496 Clang's cxx_dr_status as not implemented

Roy Jacobson via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 13 14:48:40 PDT 2022


Author: Roy Jacobson
Date: 2022-07-14T00:48:35+03:00
New Revision: 202b327f5d293a6f795a01933835b5ad53d8ed42

URL: https://github.com/llvm/llvm-project/commit/202b327f5d293a6f795a01933835b5ad53d8ed42
DIFF: https://github.com/llvm/llvm-project/commit/202b327f5d293a6f795a01933835b5ad53d8ed42.diff

LOG: [DOC] Add DR1734 and DR1496 Clang's cxx_dr_status as not implemented

Those two DRs about the (copy) triviality of types with deleted special member functions are not implemented in Clang.
Document them as such.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D129583

Added: 
    

Modified: 
    clang/test/CXX/drs/dr14xx.cpp
    clang/test/CXX/drs/dr17xx.cpp
    clang/www/cxx_dr_status.html

Removed: 
    


################################################################################
diff  --git a/clang/test/CXX/drs/dr14xx.cpp b/clang/test/CXX/drs/dr14xx.cpp
index 06fcc190784d9..526211c0e0062 100644
--- a/clang/test/CXX/drs/dr14xx.cpp
+++ b/clang/test/CXX/drs/dr14xx.cpp
@@ -501,4 +501,16 @@ namespace dr1495 { // dr1495: 4
   template<typename ...Ts> int c<0, Ts...>; // expected-error {{not more specialized}}
 #endif
 }
+
+namespace dr1496 { // dr1496: no
+#if __cplusplus >= 201103L
+struct A {
+    A() = delete;
+};
+// FIXME: 'A' should not be trivial because the class lacks at least one
+// default constructor which is not deleted.
+static_assert(__is_trivial(A), "");
+#endif
+}
+
 #endif

diff  --git a/clang/test/CXX/drs/dr17xx.cpp b/clang/test/CXX/drs/dr17xx.cpp
index c8648908ebda9..addf1d274e91b 100644
--- a/clang/test/CXX/drs/dr17xx.cpp
+++ b/clang/test/CXX/drs/dr17xx.cpp
@@ -27,6 +27,18 @@ namespace dr1715 { // dr1715: 3.9
 #endif
 }
 
+namespace dr1734 { // dr1734: no
+#if __cplusplus >= 201103L
+struct A {
+    A(const A&) = delete;
+};
+// FIXME: 'A' should not be trivially copyable because the class lacks at least
+// one non-deleted copy constructor, move constructor, copy assignment
+// operator, or move assignment operator.
+static_assert(__is_trivially_copyable(A), "");
+#endif
+}
+
 namespace dr1736 { // dr1736: 3.9
 #if __cplusplus >= 201103L
 struct S {

diff  --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html
index e437da1bfda99..466f287c75d90 100755
--- a/clang/www/cxx_dr_status.html
+++ b/clang/www/cxx_dr_status.html
@@ -8790,7 +8790,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
     <td><a href="https://wg21.link/cwg1496">1496</a></td>
     <td>CD4</td>
     <td>Triviality with deleted and missing default constructors</td>
-    <td class="none" align="center">Unknown</td>
+    <td class="none" align="center">No</td>
   </tr>
   <tr id="1497">
     <td><a href="https://wg21.link/cwg1497">1497</a></td>
@@ -10218,7 +10218,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
     <td><a href="https://wg21.link/cwg1734">1734</a></td>
     <td>CD4</td>
     <td>Nontrivial deleted copy functions</td>
-    <td class="none" align="center">Unknown</td>
+    <td class="none" align="center">No</td>
   </tr>
   <tr class="open" id="1735">
     <td><a href="https://wg21.link/cwg1735">1735</a></td>


        


More information about the cfe-commits mailing list