summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/global/qnamespace.h8
-rw-r--r--src/corelib/global/qrandom.cpp4
-rw-r--r--src/corelib/text/qlocale_p.h2
-rw-r--r--src/corelib/thread/qatomic_cxx11.h4
-rw-r--r--src/corelib/thread/qbasicatomic.h13
-rw-r--r--src/corelib/tools/qfreelist_p.h2
-rw-r--r--src/gui/painting/qpixellayout.cpp2
-rw-r--r--src/widgets/widgets/qcalendarwidget.cpp4
-rw-r--r--tests/auto/corelib/global/qflags/tst_qflags.cpp4
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp8
-rw-r--r--tests/auto/corelib/text/qstringview/tst_qstringview.cpp2
-rw-r--r--tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp7
-rw-r--r--tests/auto/corelib/thread/qatomicinteger/tst_qatomicinteger.cpp7
-rw-r--r--tests/auto/gui/painting/qcolor/tst_qcolor.cpp4
-rw-r--r--tests/auto/network/ssl/qsslellipticcurve/tst_qsslellipticcurve.cpp4
15 files changed, 4 insertions, 71 deletions
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 157928c958..0a4f025d6a 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -1601,16 +1601,10 @@ namespace Qt {
TitleBarArea // For move
};
-#if defined(Q_COMPILER_CONSTEXPR)
enum class Initialization {
Uninitialized
};
- [[maybe_unused]] static constexpr Initialization Uninitialized = Initialization::Uninitialized;
-#else
- enum Initialization {
- Uninitialized
- };
-#endif
+ [[maybe_unused]] static inline constexpr Initialization Uninitialized = Initialization::Uninitialized;
enum CoordinateSystem {
DeviceCoordinates,
diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp
index b71097926c..ca16566c1c 100644
--- a/src/corelib/global/qrandom.cpp
+++ b/src/corelib/global/qrandom.cpp
@@ -361,15 +361,13 @@ struct QRandomGenerator::SystemAndGlobalGenerators
SystemGenerator sys;
alignas(64) std::aligned_storage<sizeof(QRandomGenerator64), 64>::type global_;
-#ifdef Q_COMPILER_CONSTEXPR
constexpr SystemAndGlobalGenerators()
: globalPRNGMutex{}, system_{0}, sys{}, global_{}
{}
-#endif
void confirmLiteral()
{
-#if defined(Q_COMPILER_CONSTEXPR) && !defined(Q_CC_MSVC) && !defined(Q_OS_INTEGRITY)
+#if !defined(Q_CC_MSVC) && !defined(Q_OS_INTEGRITY)
// Currently fails to compile with MSVC 2017, saying QBasicMutex is not
// a literal type. Disassembly with MSVC 2013 and 2015 shows it is
// actually a literal; MSVC 2017 has a bug relating to this, so we're
diff --git a/src/corelib/text/qlocale_p.h b/src/corelib/text/qlocale_p.h
index aad344eccc..69b6136313 100644
--- a/src/corelib/text/qlocale_p.h
+++ b/src/corelib/text/qlocale_p.h
@@ -504,7 +504,6 @@ constexpr inline bool ascii_isspace(uchar c)
return c >= 1u && c <= 32u && (AsciiSpaceMask >> uint(c - 1)) & 1u;
}
-#if defined(Q_COMPILER_CONSTEXPR)
static_assert(ascii_isspace(' '));
static_assert(ascii_isspace('\t'));
static_assert(ascii_isspace('\n'));
@@ -518,7 +517,6 @@ static_assert(!ascii_isspace('\177'));
static_assert(!ascii_isspace(uchar('\200')));
static_assert(!ascii_isspace(uchar('\xA0')));
static_assert(!ascii_isspace(uchar('\377')));
-#endif
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qatomic_cxx11.h b/src/corelib/thread/qatomic_cxx11.h
index db78da5437..bf487bbf1f 100644
--- a/src/corelib/thread/qatomic_cxx11.h
+++ b/src/corelib/thread/qatomic_cxx11.h
@@ -478,11 +478,7 @@ template <typename X> struct QAtomicOps
}
};
-#if defined(Q_COMPILER_CONSTEXPR)
# define Q_BASIC_ATOMIC_INITIALIZER(a) { a }
-#else
-# define Q_BASIC_ATOMIC_INITIALIZER(a) { ATOMIC_VAR_INIT(a) }
-#endif
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qbasicatomic.h b/src/corelib/thread/qbasicatomic.h
index 8c6440a7d7..cb62ed2722 100644
--- a/src/corelib/thread/qbasicatomic.h
+++ b/src/corelib/thread/qbasicatomic.h
@@ -49,7 +49,7 @@
// If C++11 atomics are supported, use them!
// Note that constexpr support is sometimes disabled in QNX or INTEGRITY builds,
// but their libraries have <atomic>.
-#elif defined(Q_COMPILER_ATOMICS) && (defined(Q_COMPILER_CONSTEXPR) || defined(Q_OS_QNX) || defined(Q_OS_INTEGRITY))
+#elif defined(Q_COMPILER_ATOMICS)
# include <QtCore/qatomic_cxx11.h>
// We only support one fallback: MSVC, because even on version 2015, it lacks full constexpr support
@@ -75,16 +75,7 @@ QT_END_NAMESPACE
// New atomics
-#if defined(Q_COMPILER_CONSTEXPR)
-# if defined(Q_CC_CLANG) && Q_CC_CLANG < 303
- /*
- Do not define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS for Clang before version 3.3.
- For details about the bug: see http://llvm.org/bugs/show_bug.cgi?id=12670
- */
-# else
-# define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
-# endif
-#endif
+#define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
template <typename T>
class QBasicAtomicInteger
diff --git a/src/corelib/tools/qfreelist_p.h b/src/corelib/tools/qfreelist_p.h
index a90cb14cf5..f54e5aad65 100644
--- a/src/corelib/tools/qfreelist_p.h
+++ b/src/corelib/tools/qfreelist_p.h
@@ -207,9 +207,7 @@ public:
template <typename T, typename ConstantsType>
constexpr inline QFreeList<T, ConstantsType>::QFreeList()
:
-#if defined(Q_COMPILER_CONSTEXPR)
_v{}, // uniform initialization required
-#endif
_next(ConstantsType::InitialNextValue)
{ }
diff --git a/src/gui/painting/qpixellayout.cpp b/src/gui/painting/qpixellayout.cpp
index c931cc0a09..0b1e736ec8 100644
--- a/src/gui/painting/qpixellayout.cpp
+++ b/src/gui/painting/qpixellayout.cpp
@@ -511,9 +511,7 @@ static void QT_FASTCALL rbSwap(uchar *dst, const uchar *src, int count)
constexpr uchar gShift = greenShift<Format>();
constexpr uchar bWidth = blueWidth<Format>();
constexpr uchar bShift = blueShift<Format>();
-#ifdef Q_COMPILER_CONSTEXPR
static_assert(rWidth == bWidth);
-#endif
constexpr uint redBlueMask = (1 << rWidth) - 1;
constexpr uint alphaGreenMask = (((1 << aWidth) - 1) << aShift)
| (((1 << gWidth) - 1) << gShift);
diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp
index e9774aa556..e3adf0a852 100644
--- a/src/widgets/widgets/qcalendarwidget.cpp
+++ b/src/widgets/widgets/qcalendarwidget.cpp
@@ -829,11 +829,7 @@ class StaticDayOfWeekAssociativeArray {
static constexpr int day2idx(Qt::DayOfWeek day) noexcept { return int(day) - 1; } // alt: day % 7
public:
constexpr StaticDayOfWeekAssociativeArray() noexcept(noexcept(T()))
-#ifdef Q_COMPILER_CONSTEXPR
: contained{}, data{} // arrays require uniform initialization
-#else
- : contained(), data()
-#endif
{}
constexpr bool contains(Qt::DayOfWeek day) const noexcept { return contained[day2idx(day)]; }
diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp
index 521e134767..86a233f984 100644
--- a/tests/auto/corelib/global/qflags/tst_qflags.cpp
+++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp
@@ -105,7 +105,6 @@ constexpr Qt::MouseButtons testRelaxedConstExpr()
void tst_QFlags::constExpr()
{
-#ifdef Q_COMPILER_CONSTEXPR
Qt::MouseButtons btn = Qt::LeftButton | Qt::RightButton;
switch (btn) {
case Qt::LeftButton: QVERIFY(false); break;
@@ -125,10 +124,7 @@ void tst_QFlags::constExpr()
QVERIFY(!verifyConstExpr<Qt::RightButton>(~Qt::MouseButtons(Qt::LeftButton)));
-#if defined(__cpp_constexpr) && __cpp_constexpr-0 >= 201304
QVERIFY(verifyConstExpr<uint(testRelaxedConstExpr())>(Qt::MiddleButton));
-#endif
-#endif
}
void tst_QFlags::signedness()
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index a074ca5a51..f3d95285dc 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -2182,7 +2182,6 @@ struct RegisterMetaTypeStruct<qRegisterMetaType< Name >()> \
enum { Value = qRegisterMetaType< Name >() }; \
};
-#if defined(Q_COMPILER_CONSTEXPR)
QT_FOR_EACH_STATIC_TYPE(METATYPE_ID_STRUCT)
QT_FOR_EACH_STATIC_TYPE(REGISTER_METATYPE_STRUCT)
@@ -2197,11 +2196,9 @@ struct RegisterMetaTypeStructDefaultTemplateValue
{
enum { Value };
};
-#endif
void tst_QMetaType::constexprMetaTypeIds()
{
-#if defined(Q_COMPILER_CONSTEXPR)
int id = 0;
int metaType;
@@ -2217,9 +2214,6 @@ void tst_QMetaType::constexprMetaTypeIds()
default:;
}
Q_UNUSED(metaType);
-#else
- QSKIP("The test needs a compiler supporting constexpr");
-#endif
}
void tst_QMetaType::constRefs()
@@ -2228,9 +2222,7 @@ void tst_QMetaType::constRefs()
QCOMPARE(::qMetaTypeId<const QString &>(), ::qMetaTypeId<QString>());
QCOMPARE(::qMetaTypeId<const CustomMovable &>(), ::qMetaTypeId<CustomMovable>());
QCOMPARE(::qMetaTypeId<const QList<CustomMovable> &>(), ::qMetaTypeId<QList<CustomMovable> >());
-#if defined(Q_COMPILER_CONSTEXPR)
static_assert(::qMetaTypeId<const int &>() == ::qMetaTypeId<int>());
-#endif
}
struct CustomConvertibleType
diff --git a/tests/auto/corelib/text/qstringview/tst_qstringview.cpp b/tests/auto/corelib/text/qstringview/tst_qstringview.cpp
index 42b4767c50..a78004f04d 100644
--- a/tests/auto/corelib/text/qstringview/tst_qstringview.cpp
+++ b/tests/auto/corelib/text/qstringview/tst_qstringview.cpp
@@ -281,7 +281,6 @@ private:
void tst_QStringView::constExpr() const
{
// compile-time checks
-#ifdef Q_COMPILER_CONSTEXPR
{
constexpr QStringView sv;
static_assert(sv.size() == 0);
@@ -363,7 +362,6 @@ void tst_QStringView::constExpr() const
static_assert(sv3.isEmpty());
static_assert(sv3.size() == 0);
}
-#endif
}
void tst_QStringView::basics() const
diff --git a/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp b/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
index db9839d1ed..14d393aede 100644
--- a/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
+++ b/tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp
@@ -154,18 +154,11 @@ template <bool> inline void booleanHelper()
template <typename Atomic>
static void constexprFunctionsHelperTemplate()
{
-#ifdef Q_COMPILER_CONSTEXPR
// this is a compile-time test only
booleanHelper<Atomic::isReferenceCountingWaitFree()>();
booleanHelper<Atomic::isTestAndSetWaitFree()>();
booleanHelper<Atomic::isFetchAndStoreWaitFree()>();
booleanHelper<Atomic::isFetchAndAddWaitFree()>();
-#elif 0 // No longer constexpr
- booleanHelper<Atomic::isReferenceCountingNative()>();
- booleanHelper<Atomic::isTestAndSetNative()>();
- booleanHelper<Atomic::isFetchAndStoreNative()>();
- booleanHelper<Atomic::isFetchAndAddNative()>();
-#endif
}
void tst_QAtomicInt::warningFreeHelper()
diff --git a/tests/auto/corelib/thread/qatomicinteger/tst_qatomicinteger.cpp b/tests/auto/corelib/thread/qatomicinteger/tst_qatomicinteger.cpp
index 9f03c4c2b7..8da52c95fb 100644
--- a/tests/auto/corelib/thread/qatomicinteger/tst_qatomicinteger.cpp
+++ b/tests/auto/corelib/thread/qatomicinteger/tst_qatomicinteger.cpp
@@ -196,18 +196,11 @@ void tst_QAtomicIntegerXX::static_checks()
(void) QAtomicInteger<T>::isFetchAndAddNative();
(void) QAtomicInteger<T>::isFetchAndAddWaitFree();
-#ifdef Q_COMPILER_CONSTEXPR
// this is a compile-time test only
booleanHelper<QAtomicInteger<T>::isReferenceCountingWaitFree()>();
booleanHelper<QAtomicInteger<T>::isTestAndSetWaitFree()>();
booleanHelper<QAtomicInteger<T>::isFetchAndStoreWaitFree()>();
booleanHelper<QAtomicInteger<T>::isFetchAndAddWaitFree()>();
-#elif 0 // no longer constexpr
- booleanHelper<QAtomicInteger<T>::isReferenceCountingNative()>();
- booleanHelper<QAtomicInteger<T>::isTestAndSetNative()>();
- booleanHelper<QAtomicInteger<T>::isFetchAndStoreNative()>();
- booleanHelper<QAtomicInteger<T>::isFetchAndAddNative()>();
-#endif
}
void tst_QAtomicIntegerXX::addData()
diff --git a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp
index b9ae7a258b..40d42806a8 100644
--- a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp
+++ b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp
@@ -64,10 +64,8 @@ private slots:
void globalColors_data();
void globalColors();
-#if defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT)
void colorConstants_data();
void colorConstants();
-#endif
void setRed();
void setGreen();
@@ -373,7 +371,6 @@ void tst_QColor::globalColors()
QCOMPARE(color.rgba(), argb);
}
-#if defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT)
void tst_QColor::colorConstants_data()
{
QTest::addColumn<QColor>("color");
@@ -556,7 +553,6 @@ void tst_QColor::colorConstants()
QFETCH(QRgb, argb);
QCOMPARE(color.rgba(), argb);
}
-#endif // defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT)
/*
CSS color names = SVG 1.0 color names + transparent (rgba(0,0,0,0))
diff --git a/tests/auto/network/ssl/qsslellipticcurve/tst_qsslellipticcurve.cpp b/tests/auto/network/ssl/qsslellipticcurve/tst_qsslellipticcurve.cpp
index 7e268ddb62..15c478f05a 100644
--- a/tests/auto/network/ssl/qsslellipticcurve/tst_qsslellipticcurve.cpp
+++ b/tests/auto/network/ssl/qsslellipticcurve/tst_qsslellipticcurve.cpp
@@ -50,15 +50,11 @@ private Q_SLOTS:
void tst_QSslEllipticCurve::constExpr()
{
-#ifdef Q_COMPILER_CONSTEXPR
// check that default ctor and op ==/!= are constexpr:
char array1[QSslEllipticCurve() == QSslEllipticCurve() ? 1 : -1];
char array2[QSslEllipticCurve() != QSslEllipticCurve() ? -1 : 1];
Q_UNUSED(array1);
Q_UNUSED(array2);
-#else
- QSKIP("This test requires C++11 generalized constant expression support enabled in the compiler.");
-#endif
}
void tst_QSslEllipticCurve::construction()