[libcxx-commits] [libcxx] [libcxx][test] Avoid warnings about unused variables and typedefs if `_LIBCPP_VERSION` is not defined (PR #155679)
Alex Guteniev via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Sep 1 09:28:36 PDT 2025
https://github.com/AlexGuteniev updated https://github.com/llvm/llvm-project/pull/155679
>From 279aec03456d9d4a0a85f1efb65eae057015076e Mon Sep 17 00:00:00 2001
From: Alex Guteniev <gutenev at gmail.com>
Date: Wed, 27 Aug 2025 22:01:33 +0300
Subject: [PATCH 1/2] [libcxx][test] Avoid warnings about unused variables and
typedefs if _LIBCPP_VERSION is not defined
Make these tests pass with MSVC STL
---
.../flat.map.cons/move_assign_noexcept.compile.pass.cpp | 4 ++++
.../flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp | 2 ++
.../flat.multimap.cons/move_assign_noexcept.compile.pass.cpp | 4 ++++
.../flat.multimap.erasure/erase_if_exceptions.pass.cpp | 2 ++
.../flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp | 2 ++
5 files changed, 14 insertions(+)
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
index 18d332cf27b5b..ea39686653b08 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
@@ -50,10 +50,12 @@ struct MoveThrowsComp {
};
void test() {
+#if defined(_LIBCPP_VERSION)
{
using C = std::flat_map<int, int>;
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
+#endif
{
using C =
std::flat_map<MoveOnly,
@@ -72,6 +74,7 @@ void test() {
std::vector<MoveOnly, test_allocator<MoveOnly>>>;
static_assert(!std::is_nothrow_move_assignable_v<C>);
}
+#if defined(_LIBCPP_VERSION)
{
using C =
std::flat_map<MoveOnly,
@@ -95,6 +98,7 @@ void test() {
using C = std::flat_map<int, int, MoveThrowsComp>;
LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable_v<C>);
}
+#endif
{
// Test with a container that throws on move-assignment.
using C = std::flat_map<int, int, std::less<int>, std::pmr::vector<int>, std::vector<int>>;
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
index 48fdec42db3fc..b15c5755d9bdb 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
@@ -66,7 +66,9 @@ struct ErasurePredicate {
};
int main(int, char**) {
+#if defined(_LIBCPP_VERSION)
const std::pair<int, int> expected[] = {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
+#endif
{
using M = std::flat_map<ThrowingAssignment, int, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
index 1aa40759fada9..145c6cb7a0009 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
@@ -50,10 +50,12 @@ struct MoveThrowsComp {
};
void test() {
+#if defined(_LIBCPP_VERSION)
{
using C = std::flat_multimap<int, int>;
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
+#endif
{
using C =
std::flat_multimap<MoveOnly,
@@ -72,6 +74,7 @@ void test() {
std::vector<MoveOnly, test_allocator<MoveOnly>>>;
static_assert(!std::is_nothrow_move_assignable_v<C>);
}
+#if defined(_LIBCPP_VERSION)
{
using C =
std::flat_multimap<MoveOnly,
@@ -95,6 +98,7 @@ void test() {
using C = std::flat_multimap<int, int, MoveThrowsComp>;
LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable_v<C>);
}
+#endif
{
// Test with a container that throws on move-assignment.
using C = std::flat_multimap<int, int, std::less<int>, std::pmr::vector<int>, std::vector<int>>;
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
index 13b57202f7862..c7a4c3e632983 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
@@ -68,7 +68,9 @@ struct ErasurePredicate {
};
int main(int, char**) {
+#if defined(_LIBCPP_VERSION)
const std::pair<int, int> expected[] = {{1, 1}, {2, 2}, {3, 3}, {3, 3}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
+#endif
{
using M = std::flat_multimap<ThrowingAssignment, int, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
index 37b4a40f0165c..bccb5360878d3 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
@@ -66,7 +66,9 @@ struct ErasurePredicate {
};
void test() {
+#if defined(_LIBCPP_VERSION)
const int expected[] = {1, 2, 3, 4, 5, 6, 7, 8};
+#endif
{
using M = std::flat_set<ThrowingAssignment, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
>From d395ae4c7e6475d49474a3949e975022910a55cf Mon Sep 17 00:00:00 2001
From: Alex Guteniev <gutenev at gmail.com>
Date: Thu, 28 Aug 2025 11:31:34 +0300
Subject: [PATCH 2/2] [[maybe_unused]]
---
.../move_assign_noexcept.compile.pass.cpp | 12 ++++--------
.../flat.map.erasure/erase_if_exceptions.pass.cpp | 5 ++---
.../move_assign_noexcept.compile.pass.cpp | 12 ++++--------
.../erase_if_exceptions.pass.cpp | 5 ++---
.../flat.set.erasure/erase_if_exceptions.pass.cpp | 4 +---
5 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
index ea39686653b08..c727f7e51eb2e 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
@@ -50,12 +50,10 @@ struct MoveThrowsComp {
};
void test() {
-#if defined(_LIBCPP_VERSION)
{
- using C = std::flat_map<int, int>;
+ using C [[maybe_unused]] = std::flat_map<int, int>;
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
-#endif
{
using C =
std::flat_map<MoveOnly,
@@ -74,9 +72,8 @@ void test() {
std::vector<MoveOnly, test_allocator<MoveOnly>>>;
static_assert(!std::is_nothrow_move_assignable_v<C>);
}
-#if defined(_LIBCPP_VERSION)
{
- using C =
+ using C [[maybe_unused]] =
std::flat_map<MoveOnly,
int,
std::less<MoveOnly>,
@@ -85,7 +82,7 @@ void test() {
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
{
- using C =
+ using C [[maybe_unused]] =
std::flat_map<int,
MoveOnly,
std::less<int>,
@@ -95,10 +92,9 @@ void test() {
}
{
// Test with a comparator that throws on move-assignment.
- using C = std::flat_map<int, int, MoveThrowsComp>;
+ using C [[maybe_unused]] = std::flat_map<int, int, MoveThrowsComp>;
LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable_v<C>);
}
-#endif
{
// Test with a container that throws on move-assignment.
using C = std::flat_map<int, int, std::less<int>, std::pmr::vector<int>, std::vector<int>>;
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
index b15c5755d9bdb..c0e31dc38426c 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
@@ -66,9 +66,8 @@ struct ErasurePredicate {
};
int main(int, char**) {
-#if defined(_LIBCPP_VERSION)
- const std::pair<int, int> expected[] = {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
-#endif
+ [[maybe_unused]] const std::pair<int, int> expected[] = {
+ {1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
{
using M = std::flat_map<ThrowingAssignment, int, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
index 145c6cb7a0009..5f86bb336f135 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
@@ -50,12 +50,10 @@ struct MoveThrowsComp {
};
void test() {
-#if defined(_LIBCPP_VERSION)
{
- using C = std::flat_multimap<int, int>;
+ using C [[maybe_unused]] = std::flat_multimap<int, int>;
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
-#endif
{
using C =
std::flat_multimap<MoveOnly,
@@ -74,9 +72,8 @@ void test() {
std::vector<MoveOnly, test_allocator<MoveOnly>>>;
static_assert(!std::is_nothrow_move_assignable_v<C>);
}
-#if defined(_LIBCPP_VERSION)
{
- using C =
+ using C [[maybe_unused]] =
std::flat_multimap<MoveOnly,
int,
std::less<MoveOnly>,
@@ -85,7 +82,7 @@ void test() {
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
{
- using C =
+ using C [[maybe_unused]] =
std::flat_multimap<int,
MoveOnly,
std::less<int>,
@@ -95,10 +92,9 @@ void test() {
}
{
// Test with a comparator that throws on move-assignment.
- using C = std::flat_multimap<int, int, MoveThrowsComp>;
+ using C [[maybe_unused]] = std::flat_multimap<int, int, MoveThrowsComp>;
LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable_v<C>);
}
-#endif
{
// Test with a container that throws on move-assignment.
using C = std::flat_multimap<int, int, std::less<int>, std::pmr::vector<int>, std::vector<int>>;
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
index c7a4c3e632983..95f7e11626a4e 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
@@ -68,9 +68,8 @@ struct ErasurePredicate {
};
int main(int, char**) {
-#if defined(_LIBCPP_VERSION)
- const std::pair<int, int> expected[] = {{1, 1}, {2, 2}, {3, 3}, {3, 3}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
-#endif
+ [[maybe_unused]] const std::pair<int, int> expected[] = {
+ {1, 1}, {2, 2}, {3, 3}, {3, 3}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
{
using M = std::flat_multimap<ThrowingAssignment, int, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
index bccb5360878d3..11cc12aaeabf9 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
@@ -66,9 +66,7 @@ struct ErasurePredicate {
};
void test() {
-#if defined(_LIBCPP_VERSION)
- const int expected[] = {1, 2, 3, 4, 5, 6, 7, 8};
-#endif
+ [[maybe_unused]] const int expected[] = {1, 2, 3, 4, 5, 6, 7, 8};
{
using M = std::flat_set<ThrowingAssignment, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
More information about the libcxx-commits
mailing list