[libcxx-commits] [libcxx] [libc++] Mark LWG3454 as resolved (PR #207487)
Connector Switch via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Jul 3 23:50:33 PDT 2026
https://github.com/c8ef updated https://github.com/llvm/llvm-project/pull/207487
>From c1bb4994c8cc823a0dc98d0181a8eb8130fb9bb1 Mon Sep 17 00:00:00 2001
From: c8ef <c8ef at outlook.com>
Date: Sat, 4 Jul 2026 13:45:59 +0800
Subject: [PATCH 1/2] [libc++] Mark LWG3454 as resolved
---
libcxx/docs/Status/Cxx26Issues.csv | 2 +-
.../pointer.traits.functions/pointer_to.pass.cpp | 10 +++++++---
2 files changed, 8 insertions(+), 4 deletions(-)
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..bb6bdbd861e4d 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,24 +30,28 @@ 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**) {
test<A<int> >();
test<A<long> >();
+ static_assert(test<A<int> >());
+ static_assert(test<A<long> >());
{ (std::pointer_traits<A<void> >::element_type)0; }
return 0;
>From d8fef5f39e7650a494106da09d2a44e4172a995b Mon Sep 17 00:00:00 2001
From: c8ef <c8ef at outlook.com>
Date: Sat, 4 Jul 2026 14:50:18 +0800
Subject: [PATCH 2/2] [libc++] Mark LWG3454 as resolved
---
.../pointer.traits.functions/pointer_to.pass.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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 bb6bdbd861e4d..1715d0dd031fe 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
@@ -50,8 +50,8 @@ TEST_CONSTEXPR_CXX20 bool test() {
int main(int, char**) {
test<A<int> >();
test<A<long> >();
- static_assert(test<A<int> >());
- static_assert(test<A<long> >());
+ static_assert(test<A<int> >(), "");
+ static_assert(test<A<long> >(), "");
{ (std::pointer_traits<A<void> >::element_type)0; }
return 0;
More information about the libcxx-commits
mailing list