[libcxx-commits] [libcxx] b0a64cf - [libc++] Mark LWG3454 as resolved (#207487)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jul 5 00:53:49 PDT 2026
Author: Connector Switch
Date: 2026-07-05T15:53:44+08:00
New Revision: b0a64cf46adcb6da2cef28bac25f910077277923
URL: https://github.com/llvm/llvm-project/commit/b0a64cf46adcb6da2cef28bac25f910077277923
DIFF: https://github.com/llvm/llvm-project/commit/b0a64cf46adcb6da2cef28bac25f910077277923.diff
LOG: [libc++] Mark LWG3454 as resolved (#207487)
Closes https://github.com/llvm/llvm-project/issues/171307.
LWG3454 has been implemented in
https://github.com/llvm/llvm-project/commit/98d3d5b5da66e3cf7807c23a0294280bb796466b.
Added:
Modified:
libcxx/docs/Status/Cxx26Issues.csv
libcxx/test/std/utilities/memory/pointer.traits/pointer.traits.functions/pointer_to.pass.cpp
Removed:
################################################################################
diff --git a/libcxx/docs/Status/Cxx26Issues.csv b/libcxx/docs/Status/Cxx26Issues.csv
index 3f2a446f7e1f3..30042d4465d93 100644
--- a/libcxx/docs/Status/Cxx26Issues.csv
+++ b/libcxx/docs/Status/Cxx26Issues.csv
@@ -149,7 +149,7 @@
"`LWG2991 <https://wg21.link/LWG2991>`__","``variant copy`` constructor missing ``noexcept(see below)``","2025-11 (Kona)","","","`#171301 <https://github.com/llvm/llvm-project/issues/171301>`__",""
"`LWG3090 <https://wg21.link/LWG3090>`__","What is ยง[time.duration.cons]p4's ""no overflow is induced in the conversion"" intended to mean?","2025-11 (Kona)","","","`#171302 <https://github.com/llvm/llvm-project/issues/171302>`__",""
"`LWG3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","2025-11 (Kona)","|Complete|","16","`#105356 <https://github.com/llvm/llvm-project/issues/105356>`__",""
-"`LWG3454 <https://wg21.link/LWG3454>`__","``pointer_traits::pointer_to`` should be ``constexpr``","2025-11 (Kona)","","","`#171307 <https://github.com/llvm/llvm-project/issues/171307>`__",""
+"`LWG3454 <https://wg21.link/LWG3454>`__","``pointer_traits::pointer_to`` should be ``constexpr``","2025-11 (Kona)","|Complete|","16","`#171307 <https://github.com/llvm/llvm-project/issues/171307>`__",""
"`LWG3627 <https://wg21.link/LWG3627>`__","Inconsistent specifications for ``std::make_optional`` overloads","2025-11 (Kona)","|Complete|","22","`#171309 <https://github.com/llvm/llvm-project/issues/171309>`__",""
"`LWG4015 <https://wg21.link/LWG4015>`__","LWG 3973 broke const overloads of ``std::optional`` monadic operations","2025-11 (Kona)","","","`#171310 <https://github.com/llvm/llvm-project/issues/171310>`__",""
"`LWG4020 <https://wg21.link/LWG4020>`__","``extents::index-cast`` weirdness","2025-11 (Kona)","|Complete|","23","`#171311 <https://github.com/llvm/llvm-project/issues/171311>`__",""
diff --git a/libcxx/test/std/utilities/memory/pointer.traits/pointer.traits.functions/pointer_to.pass.cpp b/libcxx/test/std/utilities/memory/pointer.traits/pointer.traits.functions/pointer_to.pass.cpp
index e4c62f3d3df5c..fb3b76822f570 100644
--- a/libcxx/test/std/utilities/memory/pointer.traits/pointer.traits.functions/pointer_to.pass.cpp
+++ b/libcxx/test/std/utilities/memory/pointer.traits/pointer.traits.functions/pointer_to.pass.cpp
@@ -30,19 +30,21 @@ struct A {
typedef T element_type;
element_type* t_;
- A(element_type* t) : t_(t) {}
+ TEST_CONSTEXPR_CXX20 A(element_type* t) : t_(t) {}
- static A pointer_to(typename std::conditional<std::is_void<element_type>::value, nat, element_type>::type& et) {
+ TEST_CONSTEXPR_CXX20 static A
+ pointer_to(typename std::conditional<std::is_void<element_type>::value, nat, element_type>::type& et) {
return A(&et);
}
};
template <class Pointer>
-void test() {
+TEST_CONSTEXPR_CXX20 bool test() {
typename Pointer::element_type obj;
static_assert(std::is_same<Pointer, decltype(std::pointer_traits<Pointer>::pointer_to(obj))>::value, "");
Pointer p = std::pointer_traits<Pointer>::pointer_to(obj);
assert(p.t_ == &obj);
+ return true;
}
int main(int, char**) {
@@ -50,5 +52,10 @@ int main(int, char**) {
test<A<long> >();
{ (std::pointer_traits<A<void> >::element_type)0; }
+#if TEST_STD_VER >= 20
+ static_assert(test<A<int> >());
+ static_assert(test<A<long> >());
+#endif // TEST_STD_VER
+
return 0;
}
More information about the libcxx-commits
mailing list