[libcxx-commits] [libcxx] 2d83392 - [libc++] Mark LWG3211 as complete: default constructor of tuple<> should be trivial

Joe Loser via libcxx-commits libcxx-commits at lists.llvm.org
Fri Oct 29 09:09:20 PDT 2021


Author: Joe Loser
Date: 2021-10-29T12:08:51-04:00
New Revision: 2d83392a88572e3126fe78e65d522bdd1a8a0ca3

URL: https://github.com/llvm/llvm-project/commit/2d83392a88572e3126fe78e65d522bdd1a8a0ca3
DIFF: https://github.com/llvm/llvm-project/commit/2d83392a88572e3126fe78e65d522bdd1a8a0ca3.diff

LOG: [libc++] Mark LWG3211 as complete: default constructor of tuple<> should be trivial

`libc++` has had the guarantee of the default constructor of `tuple<>` being
trivial since 405570dc7a95cdf43cdee14b8a9f9c1657a6ad13. Now, the
standard mandates it as of LWG3211. So, move the file out of
`libcxx/test/libcxx` and into `libcxx/test/std` since it's no longer
`libc++`-specific. Rename it to be `.compile.pass.cpp` instead of
`.pass.cpp` while we're at it.

Reviewed By: ldionne, Quuxplusone, Mordante, #libc

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

Added: 
    libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.compile.pass.cpp

Modified: 
    libcxx/docs/Status/Cxx2bIssues.csv

Removed: 
    libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.pass.cpp


################################################################################
diff  --git a/libcxx/docs/Status/Cxx2bIssues.csv b/libcxx/docs/Status/Cxx2bIssues.csv
index 9384357f86206..07e2f38cd55c6 100644
--- a/libcxx/docs/Status/Cxx2bIssues.csv
+++ b/libcxx/docs/Status/Cxx2bIssues.csv
@@ -3,7 +3,7 @@
 "`3117 <https://wg21.link/LWG3117>`__","Missing ``packaged_task`` deduction guides","November 2020","",""
 "`3143 <https://wg21.link/LWG3143>`__","``monotonic_buffer_resource`` growth policy is unclear","November 2020","",""
 "`3195 <https://wg21.link/LWG3195>`__","What is the stored pointer value of an empty ``weak_ptr``?","November 2020","",""
-"`3211 <https://wg21.link/LWG3211>`__","``std::tuple<>`` should be trivially constructible","November 2020","",""
+"`3211 <https://wg21.link/LWG3211>`__","``std::tuple<>`` should be trivially constructible","November 2020","|Complete|","9.0"
 "`3236 <https://wg21.link/LWG3236>`__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","November 2020","","","|ranges|"
 "`3265 <https://wg21.link/LWG3265>`__","``move_iterator``'s conversions are more broken after P1207","November 2020","Fixed by `LWG3435 <https://wg21.link/LWG3435>`__",""
 "`3435 <https://wg21.link/LWG3435>`__","``three_way_comparable_with<reverse_iterator<int*>, reverse_iterator<const int*>>``","November 2020","|Complete|","13.0"

diff  --git a/libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.pass.cpp b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.compile.pass.cpp
similarity index 73%
rename from libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.pass.cpp
rename to libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.compile.pass.cpp
index f9183154c31f7..d1b296d67eb1a 100644
--- a/libcxx/test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.pass.cpp
+++ b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/empty_tuple_trivial.compile.pass.cpp
@@ -6,17 +6,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-// This test ensures that std::tuple<> is trivially constructible. That is not
-// required by the Standard, but libc++ provides that guarantee.
-
 // UNSUPPORTED: c++03
 
 #include <tuple>
 #include <type_traits>
 
-
 static_assert(std::is_trivially_constructible<std::tuple<>>::value, "");
-
-int main(int, char**) {
-  return 0;
-}


        


More information about the libcxx-commits mailing list