summaryrefslogtreecommitdiffstats
path: root/tests/auto/concurrent
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-03-27 21:40:45 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-03-31 11:32:46 +0200
commitb1b0f42c97e6087c91bb5e9766c2b3bd6144aacc (patch)
treec8ec8d5cbcaa99f3227af3743aa7805d662cc958 /tests/auto/concurrent
parent1cc1d39f3e703d73942c4259fdc29d0828330960 (diff)
tst_qtconcurrentrun: fix UB (uninit'ed values)
While doubleFunction's body is empty, it takes its argument by value, which means copying. Copying an uninitialized double is a gray zone (if you follow the partially-formed paradigma, it's UB; though the std may allow it some types, most notably std::byte and uchar; probably not double, though). Converting an uninitialized int into double is most certainly UB. Fix by initializing both d and i. Found by GCC 11's -Wmaybe-uninitialized. Pick-to: 6.5 6.2 5.15 Change-Id: I103fb72bf4b8792a292346007f498dc6349e9c68 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests/auto/concurrent')
-rw-r--r--tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp b/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp
index fa03854400..8006a3c00d 100644
--- a/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp
+++ b/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp
@@ -666,10 +666,10 @@ void tst_QtConcurrentRun::implicitConvertibleTypes()
{
QThreadPool pool;
- double d;
+ double d = 0.0;
run(doubleFunction, d).waitForFinished();
run(&pool, doubleFunction, d).waitForFinished();
- int i;
+ int i = 0;
run(doubleFunction, d).waitForFinished();
run(&pool, doubleFunction, d).waitForFinished();
run(doubleFunction, i).waitForFinished();