From c63a3a46beb61dbf7c770e7e83f829ec3dc08727 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 16 Jun 2023 09:36:23 -0700 Subject: [PATCH] Q*ValueRef: suppress MSVC warning on deriving from non-exported base Warning C4275 non dll-interface class 'QJsonValueConstRef' used as base for dll-interface class 'QJsonValueRef' UniRemoteAdapter C:\qt\Qt6.5.1\6.5.1\msvc2019_64\include\QtCore\qjsonvalue.h 219 Fixes: QTBUG-114629 Change-Id: I443cf0c8a76243eead33fffd176930f96c43eb47 Reviewed-by: Volker Hilsheimer (cherry picked from commit 674aa084c2d561d2377d8f8a8de1e3e7e60666f6) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/serialization/qcborvalue.h | 3 +++ src/corelib/serialization/qjsonvalue.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/corelib/serialization/qcborvalue.h b/src/corelib/serialization/qcborvalue.h index b90d397bccb..aeac764780e 100644 --- a/src/corelib/serialization/qcborvalue.h +++ b/src/corelib/serialization/qcborvalue.h @@ -428,6 +428,8 @@ protected: qsizetype i; }; +QT_WARNING_PUSH +QT6_ONLY(QT_WARNING_DISABLE_MSVC(4275)) // non dll-interface class 'QJsonValueConstRef' used as base for dll-interface class 'QJsonValueRef' class QT6_ONLY(Q_CORE_EXPORT) QCborValueRef : public QCborValueConstRef { public: @@ -582,6 +584,7 @@ private: QT7_ONLY(Q_CORE_EXPORT) static void assign(QCborValueRef that, QCborValue &&other); QT7_ONLY(Q_CORE_EXPORT) static void assign(QCborValueRef that, const QCborValueRef other); }; +QT_WARNING_POP Q_DECLARE_OPERATORS_FOR_FLAGS(QCborValue::EncodingOptions) Q_DECLARE_OPERATORS_FOR_FLAGS(QCborValue::DiagnosticNotationOptions) diff --git a/src/corelib/serialization/qjsonvalue.h b/src/corelib/serialization/qjsonvalue.h index dddc8a0c30d..b0b6b97fab0 100644 --- a/src/corelib/serialization/qjsonvalue.h +++ b/src/corelib/serialization/qjsonvalue.h @@ -215,6 +215,8 @@ protected: friend class QJsonPrivate::Value; }; +QT_WARNING_PUSH +QT6_ONLY(QT_WARNING_DISABLE_MSVC(4275)) // non dll-interface class 'QJsonValueConstRef' used as base for dll-interface class 'QJsonValueRef' class QT6_ONLY(Q_CORE_EXPORT) QJsonValueRef : public QJsonValueConstRef { public: @@ -273,6 +275,7 @@ private: friend class QJsonArray; friend class QJsonObject; }; +QT_WARNING_POP inline QJsonValue QCborValueConstRef::toJsonValue() const {