From 532400a7220ed77d9238bb126084d0dce5a00908 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 14 Jun 2025 11:45:55 +0200 Subject: [PATCH] tst_QPointer: make capture compatible between C++17..23 Clang 19 -std=c++23 complained that ITERATIONS_PER_THREAD was captured, but not used, so 668d81f73a5c2f4ec14764d1892f2eaf6494c0f1 dropped it, after making the variable constexpr. Picking that change back to older branches, we found that MSVC (14.29?) complains that it's _not_ captured anymore: tst_qpointer.cpp(491): error C3493: 'ITERATIONS_PER_THREAD' cannot be implicitly captured because no default capture mode has been specified To appease both compilers, and cover the maximum range of C++ standard editions, use implicit [&] capture, which should work everywhere. Not picking to 6.5, because the cherry-pick of 668d81f73a5c2f4ec14764d1892f2eaf6494c0f1 already had to make that change in order to pass CI. Pick-to: 6.10 6.9 6.8 Change-Id: Iacbd53d3904608e8c9cd73edf31ba7924fd508e6 Reviewed-by: Ahmad Samir --- tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp b/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp index c469575c23a..8b6939483a6 100644 --- a/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp +++ b/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp @@ -545,7 +545,7 @@ void tst_QPointer::raceCondition() for (int i = 0; i < NUM_THREADS; ++i) { QThread *thread = - QThread::create([&startSemaphore, &targetObject] { + QThread::create([&] { startSemaphore.acquire(); for (int j = 0; j < ITERATIONS_PER_THREAD; ++j) {