From 42def7cd8bab71002d3097b9db33fd1dc25a72f6 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 13 Nov 2024 12:57:11 +0000 Subject: [PATCH] libstdc++: Fix nodiscard warnings in perf test for memory pools The use of unnamed std::lock_guard temporaries was intentional here, as they were used like barriers (but std::barrier isn't available until C++20). But that gives nodiscard warnings, because unnamed temporary locks are usually unintentional. Use named variables in new block scopes instead. libstdc++-v3/ChangeLog: * testsuite/performance/20_util/memory_resource/pools.cc: Fix -Wunused-value warnings about unnamed std::lock_guard objects. --- .../performance/20_util/memory_resource/pools.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc b/libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc index 8a2a5f1facf..5d57d1a5a0c 100644 --- a/libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc +++ b/libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc @@ -167,7 +167,10 @@ void test_lists_resource_per_thread() auto run_test = [&mx] (std::pmr::memory_resource* memres, __gnu_test::time_counter* timers) { - std::lock_guard{mx}; // block until the mutex can be locked + { + // block until the mutex can be locked + std::lock_guard wait_for_gate_to_be_unlocked{mx}; + } populate_lists(memres, timers); }; @@ -239,7 +242,10 @@ void test_lists_shared_resource() auto run_test = [&mx] (std::pmr::memory_resource* memres, __gnu_test::time_counter* timers) { - std::lock_guard{mx}; // block until the mutex can be locked + { + // block until the mutex can be locked + std::lock_guard wait_for_gate_to_be_unlocked{mx}; + } populate_lists(memres, timers); }; @@ -307,7 +313,10 @@ void test_cross_thread_dealloc() [&, num_threads] (std::pmr::memory_resource* memres, int i, bool with_exit) { std::size_t counter = 0; - std::lock_guard{mx}; + { + // block until the mutex can be locked + std::lock_guard wait_for_gate_to_be_unlocked{mx}; + } // Fill this thread's buffer with allocations: for (X& x : allocs[i]) {