[libcxx-commits] [libcxx] [libc++][NFC] Cleanup is_implicit_life_time test (PR #164154)
Hristo Hristov via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Oct 19 00:20:46 PDT 2025
https://github.com/H-G-Hristov created https://github.com/llvm/llvm-project/pull/164154
Removed unsupported compilers and simplified the test a bit.
>From b6bb4bf7dd17e57148d18758b95ebb3176d3ba54 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sun, 19 Oct 2025 10:20:21 +0300
Subject: [PATCH] [libc++][NFC] Cleanup is_implicit_life_time test
Removed unsupported compilers and simplified the test a bit.
---
.../is_implicit_lifetime.pass.cpp | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
index 881a5d2c6f751..bdf502d140623 100644
--- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
@@ -6,10 +6,10 @@
//
//===----------------------------------------------------------------------===//
-// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
+// REQUIRES: std-at-least-c++23
// These compilers don't support __builtin_is_implicit_lifetime yet.
-// UNSUPPORTED: clang-19, gcc-14, gcc-15, apple-clang-16, apple-clang-17
+// UNSUPPORTED: clang-19, gcc-15, apple-clang-17
// <type_traits>
@@ -139,13 +139,6 @@ constexpr void test_is_implicit_lifetime() {
test_is_implicit_lifetime<T[94], true>();
}
-struct ArithmeticTypesTest {
- template <class T>
- constexpr void operator()() {
- test_is_implicit_lifetime<T>();
- }
-};
-
constexpr bool test() {
// Standard fundamental C++ types
@@ -155,7 +148,7 @@ constexpr bool test() {
test_is_implicit_lifetime<const void, false>();
test_is_implicit_lifetime<volatile void, false>();
- types::for_each(types::arithmetic_types(), ArithmeticTypesTest{});
+ types::for_each(types::arithmetic_types(), []<typename T> { test_is_implicit_lifetime<T>(); });
test_is_implicit_lifetime<Enum>();
test_is_implicit_lifetime<SignedEnum>();
@@ -166,7 +159,7 @@ constexpr bool test() {
test_is_implicit_lifetime<UnsignedEnumClass>();
test_is_implicit_lifetime<void(), false>();
- test_is_implicit_lifetime<void()&, false>();
+ test_is_implicit_lifetime<void() &, false>();
test_is_implicit_lifetime<void() const, false>();
test_is_implicit_lifetime<void (&)(), false>();
test_is_implicit_lifetime<void (*)(), true>();
@@ -177,8 +170,8 @@ constexpr bool test() {
test_is_implicit_lifetime<int EmptyStruct::*, true>(); // Pointer-to-member
test_is_implicit_lifetime<int (EmptyStruct::*)(), true>();
test_is_implicit_lifetime<int (EmptyStruct::*)() const, true>();
- test_is_implicit_lifetime<int (EmptyStruct::*)()&, true>();
- test_is_implicit_lifetime<int (EmptyStruct::*)()&&, true>();
+ test_is_implicit_lifetime<int (EmptyStruct::*)() &, true>();
+ test_is_implicit_lifetime<int (EmptyStruct::*)() &&, true>();
test_is_implicit_lifetime<IncompleteStruct[], true>();
test_is_implicit_lifetime<IncompleteStruct[82], true>();
More information about the libcxx-commits
mailing list