summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2013-12-02 19:50:29 -0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-30 18:06:27 +0100
commitaba30f02348c60ea785c374d12e1f3998dc4cb14 (patch)
tree1c00adbb5db40e6b372a88e24d9345b38e3461c4 /tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
parentfd0d576709fff48bc23444b3a30a86e92c625101 (diff)
Replace the type-based QAtomicIntegerTraits with a size-based one
This simplifies the code a lot and avoids silly mistakes where a specific integer type is missing (such as char16_t). Change-Id: Id91dfd1919e783e0a9af7bfa093ca560a01b22d1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp')
-rw-r--r--tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp b/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
index fefc126bba..42b3a52531 100644
--- a/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
+++ b/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
@@ -99,10 +99,6 @@ static inline void assemblyMarker(void *ptr = 0)
puts((char *)ptr + I);
}
-QT_BEGIN_NAMESPACE
-template <typename T> class QBasicAtomicInteger; // even if it this class isn't supported
-QT_END_NAMESPACE
-
template <typename T, typename Atomic>
static void warningFreeHelperTemplate()
{
@@ -185,7 +181,7 @@ void tst_QAtomicInt::warningFreeHelper()
qFatal("This code is bogus, and shouldn't be run. We're looking for compiler warnings only.");
warningFreeHelperTemplate<int, QBasicAtomicInt>();
-#ifdef Q_ATOMIC_INT32_IS_SUPPORTED
+ // 32-bit are always supported:
warningFreeHelperTemplate<int, QBasicAtomicInteger<int> >();
warningFreeHelperTemplate<unsigned int, QBasicAtomicInteger<unsigned int> >();
constexprFunctionsHelperTemplate<QBasicAtomicInteger<int> >();
@@ -194,7 +190,18 @@ void tst_QAtomicInt::warningFreeHelper()
warningFreeHelperTemplate<qint16, QBasicAtomicInteger<char32_t> >();
constexprFunctionsHelperTemplate<QBasicAtomicInteger<char32_t> >();
# endif
-#endif
+
+ // pointer-sized integers are always supported:
+ warningFreeHelperTemplate<int, QBasicAtomicInteger<qptrdiff> >();
+ warningFreeHelperTemplate<unsigned int, QBasicAtomicInteger<quintptr> >();
+ constexprFunctionsHelperTemplate<QBasicAtomicInteger<qptrdiff> >();
+ constexprFunctionsHelperTemplate<QBasicAtomicInteger<quintptr> >();
+
+ // long is always supported because it's either 32-bit or pointer-sized:
+ warningFreeHelperTemplate<int, QBasicAtomicInteger<long int> >();
+ warningFreeHelperTemplate<unsigned int, QBasicAtomicInteger<unsigned long int> >();
+ constexprFunctionsHelperTemplate<QBasicAtomicInteger<long int> >();
+ constexprFunctionsHelperTemplate<QBasicAtomicInteger<unsigned long int> >();
#ifdef Q_ATOMIC_INT16_IS_SUPPORTED
warningFreeHelperTemplate<qint16, QBasicAtomicInteger<qint16> >();