From 34304e3100883187ca658b8c983af21549496b43 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 17 Nov 2020 13:24:46 +0100 Subject: Get rid of Q_COMPILER_CONSTEXPR checks Is required now. Change-Id: I62e95929d1649ea1390392230b619bd56d2a0349 Reviewed-by: Lars Knoll --- src/corelib/global/qnamespace.h | 8 +------- src/corelib/global/qrandom.cpp | 4 +--- src/corelib/text/qlocale_p.h | 2 -- src/corelib/thread/qatomic_cxx11.h | 4 ---- src/corelib/thread/qbasicatomic.h | 13 ++----------- src/corelib/tools/qfreelist_p.h | 2 -- src/gui/painting/qpixellayout.cpp | 2 -- src/widgets/widgets/qcalendarwidget.cpp | 4 ---- tests/auto/corelib/global/qflags/tst_qflags.cpp | 4 ---- tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 8 -------- tests/auto/corelib/text/qstringview/tst_qstringview.cpp | 2 -- tests/auto/corelib/thread/qatomicint/tst_qatomicint.cpp | 7 ------- .../corelib/thread/qatomicinteger/tst_qatomicinteger.cpp | 7 ------- tests/auto/gui/painting/qcolor/tst_qcolor.cpp | 4 ---- .../network/ssl/qsslellipticcurve/tst_qsslellipticcurve.cpp | 4 ---- 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::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 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 . -#elif defined(Q_COMPILER_ATOMICS) && (defined(Q_COMPILER_CONSTEXPR) || defined(Q_OS_QNX) || defined(Q_OS_INTEGRITY)) +#elif defined(Q_COMPILER_ATOMICS) # include // 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 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 constexpr inline QFreeList::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(); constexpr uchar bWidth = blueWidth(); constexpr uchar bShift = blueShift(); -#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::MouseButtons(Qt::LeftButton))); -#if defined(__cpp_constexpr) && __cpp_constexpr-0 >= 201304 QVERIFY(verifyConstExpr(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()> \ 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(), ::qMetaTypeId()); QCOMPARE(::qMetaTypeId(), ::qMetaTypeId()); QCOMPARE(::qMetaTypeId &>(), ::qMetaTypeId >()); -#if defined(Q_COMPILER_CONSTEXPR) static_assert(::qMetaTypeId() == ::qMetaTypeId()); -#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 inline void booleanHelper() template static void constexprFunctionsHelperTemplate() { -#ifdef Q_COMPILER_CONSTEXPR // this is a compile-time test only booleanHelper(); booleanHelper(); booleanHelper(); booleanHelper(); -#elif 0 // No longer constexpr - booleanHelper(); - booleanHelper(); - booleanHelper(); - booleanHelper(); -#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::isFetchAndAddNative(); (void) QAtomicInteger::isFetchAndAddWaitFree(); -#ifdef Q_COMPILER_CONSTEXPR // this is a compile-time test only booleanHelper::isReferenceCountingWaitFree()>(); booleanHelper::isTestAndSetWaitFree()>(); booleanHelper::isFetchAndStoreWaitFree()>(); booleanHelper::isFetchAndAddWaitFree()>(); -#elif 0 // no longer constexpr - booleanHelper::isReferenceCountingNative()>(); - booleanHelper::isTestAndSetNative()>(); - booleanHelper::isFetchAndStoreNative()>(); - booleanHelper::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("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() -- cgit v1.2.3