From 387f3e00a8d74984d33af990a1e1f57cd87aae61 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Thu, 29 Oct 2020 13:33:22 +0100 Subject: Workaround gcc compiler bug For the comparison of a QFuture and an int, gcc creates code that creates a qfloat16 instance, as can be seen when stepping through this code: QFuture future; int five = 5; if (future == five) return five; Explicitly get the result of the QFuture to compare as a workaround. Change-Id: Id2adc2268dbc0ccec7df3a9786c9d29dcdc04da3 Reviewed-by: Sona Kurazyan --- .../qtconcurrentfilter/tst_qtconcurrentfilter.cpp | 16 ++++++++-------- .../concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) (limited to 'tests/auto/concurrent') diff --git a/tests/auto/concurrent/qtconcurrentfilter/tst_qtconcurrentfilter.cpp b/tests/auto/concurrent/qtconcurrentfilter/tst_qtconcurrentfilter.cpp index ac6869eee9..32023f0a66 100644 --- a/tests/auto/concurrent/qtconcurrentfilter/tst_qtconcurrentfilter.cpp +++ b/tests/auto/concurrent/qtconcurrentfilter/tst_qtconcurrentfilter.cpp @@ -462,7 +462,7 @@ void tst_QtConcurrentFilter::filteredReduced() // rvalue sequences auto future = QtConcurrent::filteredReduced(std::vector { 1, 2, 3, 4 }, keepEvenIntegers, intSumReduce); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced(std::vector { 1, 2, 3, 4 }, keepEvenIntegers, intSumReduce); @@ -473,7 +473,7 @@ void tst_QtConcurrentFilter::filteredReduced() // move only sequences auto future = QtConcurrent::filteredReduced(MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers, intSumReduce); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced(MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers, intSumReduce); @@ -560,7 +560,7 @@ void tst_QtConcurrentFilter::filteredReducedThreadPool() // rvalue sequences auto future = QtConcurrent::filteredReduced(&pool, std::vector { 1, 2, 3, 4 }, keepOddIntegers, intSumReduce); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced(&pool, std::vector { 1, 2, 3, 4 }, keepOddIntegers, intSumReduce); @@ -571,7 +571,7 @@ void tst_QtConcurrentFilter::filteredReducedThreadPool() // move only sequences auto future = QtConcurrent::filteredReduced(&pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepOddIntegers, intSumReduce); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced(&pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepOddIntegers, intSumReduce); @@ -778,7 +778,7 @@ void tst_QtConcurrentFilter::filteredReducedInitialValue() // rvalue sequences auto future = QtConcurrent::filteredReduced(std::vector { 1, 2, 3, 4 }, keepEvenIntegers, intSumReduce, intInitial); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced( std::vector { 1, 2, 3, 4 }, keepEvenIntegers, intSumReduce, intInitial); @@ -789,7 +789,7 @@ void tst_QtConcurrentFilter::filteredReducedInitialValue() // move only sequences auto future = QtConcurrent::filteredReduced(MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers, intSumReduce, intInitial); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced( MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers, intSumReduce, intInitial); @@ -888,7 +888,7 @@ void tst_QtConcurrentFilter::filteredReducedInitialValueThreadPool() // rvalue sequences auto future = QtConcurrent::filteredReduced(&pool, std::vector { 1, 2, 3, 4 }, keepOddIntegers, intSumReduce, intInitial); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced( &pool, std::vector { 1, 2, 3, 4 }, keepOddIntegers, intSumReduce, intInitial); @@ -899,7 +899,7 @@ void tst_QtConcurrentFilter::filteredReducedInitialValueThreadPool() // move only sequences auto future = QtConcurrent::filteredReduced(&pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepOddIntegers, intSumReduce, intInitial); - QCOMPARE(future, intSum); + QCOMPARE(future.result(), intSum); auto result = QtConcurrent::blockingFilteredReduced( &pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepOddIntegers, intSumReduce, intInitial); diff --git a/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp b/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp index 06446321b3..ca2db64a85 100644 --- a/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp +++ b/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp @@ -770,7 +770,7 @@ void tst_QtConcurrentMap::mappedReduced() { // rvalue sequences auto future = QtConcurrent::mappedReduced(std::vector { 1, 2, 3 }, intSquare, intSumReduce); - QCOMPARE(future, sumOfSquares); + QCOMPARE(future.result(), sumOfSquares); auto result = QtConcurrent::blockingMappedReduced(std::vector { 1, 2, 3 }, intSquare, intSumReduce); @@ -781,7 +781,7 @@ void tst_QtConcurrentMap::mappedReduced() // move only sequences auto future = QtConcurrent::mappedReduced(MoveOnlyVector({ 1, 2, 3 }), intSquare, intSumReduce); - QCOMPARE(future, sumOfSquares); + QCOMPARE(future.result(), sumOfSquares); auto result = QtConcurrent::blockingMappedReduced(MoveOnlyVector({ 1, 2, 3 }), intSquare, intSumReduce); @@ -878,7 +878,7 @@ void tst_QtConcurrentMap::mappedReducedThreadPool() // rvalue sequences auto future = QtConcurrent::mappedReduced(&pool, std::vector { 1, 2, 3 }, intCube, intSumReduce); - QCOMPARE(future, sumOfCubes); + QCOMPARE(future.result(), sumOfCubes); auto result = QtConcurrent::blockingMappedReduced(&pool, std::vector { 1, 2, 3 }, intCube, intSumReduce); @@ -889,7 +889,7 @@ void tst_QtConcurrentMap::mappedReducedThreadPool() // move only sequences auto future = QtConcurrent::mappedReduced(&pool, MoveOnlyVector({ 1, 2, 3 }), intCube, intSumReduce); - QCOMPARE(future, sumOfCubes); + QCOMPARE(future.result(), sumOfCubes); auto result = QtConcurrent::blockingMappedReduced(&pool, MoveOnlyVector({ 1, 2, 3 }), intCube, intSumReduce); @@ -1062,7 +1062,7 @@ void tst_QtConcurrentMap::mappedReducedInitialValue() // rvalue sequences auto future = QtConcurrent::mappedReduced(std::vector { 1, 2, 3 }, intSquare, intSumReduce, intInitial); - QCOMPARE(future, sumOfSquares); + QCOMPARE(future.result(), sumOfSquares); auto result = QtConcurrent::blockingMappedReduced(std::vector { 1, 2, 3 }, intSquare, intSumReduce, intInitial); @@ -1073,7 +1073,7 @@ void tst_QtConcurrentMap::mappedReducedInitialValue() // move only sequences auto future = QtConcurrent::mappedReduced(MoveOnlyVector({ 1, 2, 3 }), intSquare, intSumReduce, intInitial); - QCOMPARE(future, sumOfSquares); + QCOMPARE(future.result(), sumOfSquares); auto result = QtConcurrent::blockingMappedReduced(MoveOnlyVector({ 1, 2, 3 }), intSquare, intSumReduce, intInitial); @@ -1169,7 +1169,7 @@ void tst_QtConcurrentMap::mappedReducedInitialValueThreadPool() // rvalue sequences auto future = QtConcurrent::mappedReduced(&pool, std::vector { 1, 2, 3 }, intCube, intSumReduce, intInitial); - QCOMPARE(future, sumOfCubes); + QCOMPARE(future.result(), sumOfCubes); auto result = QtConcurrent::blockingMappedReduced(&pool, std::vector { 1, 2, 3 }, intCube, intSumReduce, intInitial); @@ -1180,7 +1180,7 @@ void tst_QtConcurrentMap::mappedReducedInitialValueThreadPool() // move only sequences auto future = QtConcurrent::mappedReduced(&pool, MoveOnlyVector({ 1, 2, 3 }), intCube, intSumReduce, intInitial); - QCOMPARE(future, sumOfCubes); + QCOMPARE(future.result(), sumOfCubes); auto result = QtConcurrent::blockingMappedReduced(&pool, MoveOnlyVector({ 1, 2, 3 }), intCube, intSumReduce, intInitial); -- cgit v1.2.3