diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2021-07-16 09:57:56 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2021-07-28 17:50:09 +0200 |
commit | 3a72496b5c43484a94882440993b0ca0cb842d8a (patch) | |
tree | 7704812d37e34a0e3e6ab32e17bb8a7624b3828d /tests/benchmarks/corelib/thread | |
parent | 74a91773afa395ee0cefcdcd25bb3947b60a0b63 (diff) |
tests: fix some -Wvolatile
C++20 deprecated compound volatile statements such as pre- and
post-increments, to stress that they're not atomic. So instead of
volatile i;
~~~~;
++i;
you're now supposed to write
volatile i;
~~~~;
int j = i; // volatile load
++j;
i = j; // volatile store
which matches more closely what hardware does.
Instead of fixing every use of volatile pre- or post-increment in this
fashion individually, and realising that probably a few more Qt
modules will have the same kind of code patterns in them, write
QtPrivate functions to do the job centrally.
Change-Id: I838097bd484ef2118c071726963f103c080d2ba5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/benchmarks/corelib/thread')
-rw-r--r-- | tests/benchmarks/corelib/thread/qmutex/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/tests/benchmarks/corelib/thread/qmutex/CMakeLists.txt b/tests/benchmarks/corelib/thread/qmutex/CMakeLists.txt index 8872a50227..923bfba117 100644 --- a/tests/benchmarks/corelib/thread/qmutex/CMakeLists.txt +++ b/tests/benchmarks/corelib/thread/qmutex/CMakeLists.txt @@ -8,6 +8,7 @@ qt_internal_add_benchmark(tst_bench_qmutex SOURCES tst_qmutex.cpp PUBLIC_LIBRARIES + Qt::CorePrivate Qt::Test ) diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index 9cea995433..9b14cbca5d 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -28,6 +28,7 @@ #include <QtCore/QtCore> #include <QTest> +#include <QtCore/private/qvolatile_p.h> #include <math.h> @@ -158,7 +159,7 @@ void tst_QMutex::noThread() QBENCHMARK { count = 0; for (int i = 0; i < N; i++) { - count++; + QtPrivate::volatilePreIncrement(count); } } break; @@ -167,7 +168,7 @@ void tst_QMutex::noThread() count = 0; for (int i = 0; i < N; i++) { mtx.lock(); - count++; + QtPrivate::volatilePreIncrement(count); mtx.unlock(); } } @@ -177,7 +178,7 @@ void tst_QMutex::noThread() count = 0; for (int i = 0; i < N; i++) { QMutexLocker locker(&mtx); - count++; + QtPrivate::volatilePreIncrement(count); } } break; |