From abd0301c7e72f5e9ef479e22e1e9da36efa5f12b Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 26 Jan 2023 13:46:21 +0100 Subject: [PATCH] QtCore: Disambiguate static variables They cause clashes in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Change-Id: I5f1fbee07872a742a78adc9864fe00c710ca24d0 Reviewed-by: Thiago Macieira (cherry picked from commit d3f8d7fd4140b269532e2daca8eb5cbfe28ed465) Reviewed-by: Axel Spoerl --- src/corelib/global/qnumeric.cpp | 4 ++++ src/corelib/kernel/qmetaobjectbuilder.cpp | 6 +++--- src/corelib/kernel/qvariant.cpp | 6 +++--- src/corelib/serialization/qxmlstream.cpp | 2 +- src/corelib/serialization/qxmlstreamgrammar_p.h | 2 +- src/corelib/serialization/qxmlstreamparser_p.h | 2 +- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/corelib/global/qnumeric.cpp b/src/corelib/global/qnumeric.cpp index e492e3f02a0..a46039c5da5 100644 --- a/src/corelib/global/qnumeric.cpp +++ b/src/corelib/global/qnumeric.cpp @@ -458,6 +458,8 @@ Q_CORE_EXPORT quint64 qFloatDistance(double a, double b) Returns true if the absolute value of \a f is within 0.00001f of 0.0. */ +namespace QtNumericTests { + template static constexpr T max = std::numeric_limits::max(); template static constexpr T min = std::numeric_limits::min(); @@ -489,4 +491,6 @@ static_assert(qt_saturate(min) == min); static_assert(qt_saturate(min) == 0); static_assert(qt_saturate(min) == 0); +} // namespace QtNumericTests + QT_END_NAMESPACE diff --git a/src/corelib/kernel/qmetaobjectbuilder.cpp b/src/corelib/kernel/qmetaobjectbuilder.cpp index b742320f339..143880fe985 100644 --- a/src/corelib/kernel/qmetaobjectbuilder.cpp +++ b/src/corelib/kernel/qmetaobjectbuilder.cpp @@ -53,7 +53,7 @@ Q_CORE_EXPORT bool isBuiltinType(const QByteArray &type) } // namespace QtPrivate // copied from qmetaobject.cpp -[[maybe_unused]] static inline const QMetaObjectPrivate *priv(const uint* data) +[[maybe_unused]] static inline const QMetaObjectPrivate *qmobPriv(const uint* data) { return reinterpret_cast(data); } class QMetaMethodBuilderPrivate @@ -704,7 +704,7 @@ void QMetaObjectBuilder::addMetaObject(const QMetaObject *prototype, } if ((members & RelatedMetaObjects) != 0) { - Q_ASSERT(priv(prototype->d.data)->revision >= 2); + Q_ASSERT(qmobPriv(prototype->d.data)->revision >= 2); const auto *objects = prototype->d.relatedMetaObjects; if (objects) { while (*objects != nullptr) { @@ -715,7 +715,7 @@ void QMetaObjectBuilder::addMetaObject(const QMetaObject *prototype, } if ((members & StaticMetacall) != 0) { - Q_ASSERT(priv(prototype->d.data)->revision >= 6); + Q_ASSERT(qmobPriv(prototype->d.data)->revision >= 6); if (prototype->d.static_metacall) setStaticMetacallFunction(prototype->d.static_metacall); } diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index eeedcccadd4..2939795709f 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -2312,7 +2312,7 @@ static QPartialOrdering numericCompare(const QVariant::Private *d1, const QVaria } #ifndef QT_BOOTSTRAPPED -static bool canConvertMetaObject(QMetaType fromType, QMetaType toType) +static bool qvCanConvertMetaObject(QMetaType fromType, QMetaType toType) { if ((fromType.flags() & QMetaType::PointerToQObject) && (toType.flags() & QMetaType::PointerToQObject)) { @@ -2342,7 +2342,7 @@ bool QVariant::equals(const QVariant &v) const return numericCompare(&d, &v.d) == QPartialOrdering::Equivalent; #ifndef QT_BOOTSTRAPPED // if both types are related pointers to QObjects, check if they point to the same object - if (canConvertMetaObject(metatype, v.metaType())) + if (qvCanConvertMetaObject(metatype, v.metaType())) return pointerCompare(&d, &v.d) == QPartialOrdering::Equivalent; #endif return false; @@ -2385,7 +2385,7 @@ QPartialOrdering QVariant::compare(const QVariant &lhs, const QVariant &rhs) if (canBeNumericallyCompared(lhs.d.type().iface(), rhs.d.type().iface())) return numericCompare(&lhs.d, &rhs.d); #ifndef QT_BOOTSTRAPPED - if (canConvertMetaObject(lhs.metaType(), rhs.metaType())) + if (qvCanConvertMetaObject(lhs.metaType(), rhs.metaType())) return pointerCompare(&lhs.d, &rhs.d); #endif return QPartialOrdering::Unordered; diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp index 0b5843f032a..82212a54094 100644 --- a/src/corelib/serialization/qxmlstream.cpp +++ b/src/corelib/serialization/qxmlstream.cpp @@ -1853,7 +1853,7 @@ void QXmlStreamReaderPrivate::parseError() int ers = state_stack[tos]; int nexpected = 0; int expected[nmax]; - if (token != ERROR) + if (token != XML_ERROR) for (int tk = 0; tk < TERMINAL_COUNT; ++tk) { int k = t_action(ers, tk); if (k <= 0) diff --git a/src/corelib/serialization/qxmlstreamgrammar_p.h b/src/corelib/serialization/qxmlstreamgrammar_p.h index a9d999b4ed6..0ad32327799 100644 --- a/src/corelib/serialization/qxmlstreamgrammar_p.h +++ b/src/corelib/serialization/qxmlstreamgrammar_p.h @@ -44,7 +44,7 @@ public: ENTITY = 32, ENTITY_DONE = 45, EQ = 14, - ERROR = 43, + XML_ERROR = 43, FIXED = 39, HASH = 6, ID = 48, diff --git a/src/corelib/serialization/qxmlstreamparser_p.h b/src/corelib/serialization/qxmlstreamparser_p.h index e3ae6faa442..71d5d060817 100644 --- a/src/corelib/serialization/qxmlstreamparser_p.h +++ b/src/corelib/serialization/qxmlstreamparser_p.h @@ -140,7 +140,7 @@ bool QXmlStreamReaderPrivate::parse() } else switch (token_char) { case 0xfffe: case 0xffff: - token = ERROR; + token = XML_ERROR; break; case '\r': token = SPACE;