diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 004b32fd22..843916b3b1 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -90,14 +90,8 @@ clang { greaterThan(QT_GCC_MAJOR_VERSION, 5): QMAKE_CXXFLAGS_WARN_ON += -Wshift-overflow=2 -Wduplicated-cond # GCC 7 has a lot of false positives relating to this, so disable completely greaterThan(QT_GCC_MAJOR_VERSION, 6): QMAKE_CXXFLAGS_WARN_ON += -Wno-stringop-overflow - # GCC 9 has a lot of false positives relating to this, so disable completely - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-deprecated-copy - # GCC 9 introduced this - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-redundant-move - # GCC 9 introduced this + # GCC 9 introduced -Wformat-overflow in -Wall, but it is buggy: greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-format-overflow - # GCC 9 introduced this - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-init-list-lifetime } warnings_are_errors:warning_clean { @@ -137,14 +131,13 @@ warnings_are_errors:warning_clean { # GCC 7 includes -Wimplicit-fallthrough in -Wextra, but Qt is not yet free of implicit fallthroughs. greaterThan(QT_GCC_MAJOR_VERSION, 6): QMAKE_CXXFLAGS_WARN_ON += -Wno-error=implicit-fallthrough - # GCC 9 has a lot of false positives relating to this, so disable completely - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-deprecated-copy + # GCC 9 introduced -Wdeprecated-copy in -Wextra, but we are not clean for it. + greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-error=deprecated-copy # GCC 9 introduced this - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-redundant-move + greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-error=redundant-move # GCC 9 introduced this - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-format-overflow - # GCC 9 introduced this - greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-init-list-lifetime + greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-error=init-list-lifetime + # Work-around for bug https://code.google.com/p/android/issues/detail?id=58135 android: QMAKE_CXXFLAGS_WARN_ON += -Wno-error=literal-suffix } diff --git a/src/corelib/io/qprocess_p.h b/src/corelib/io/qprocess_p.h index aa7ecbe91d..eb2d1ed048 100644 --- a/src/corelib/io/qprocess_p.h +++ b/src/corelib/io/qprocess_p.h @@ -108,8 +108,7 @@ using QProcEnvKey = QByteArray; class QProcEnvValue { public: - QProcEnvValue() {} - QProcEnvValue(const QProcEnvValue &other) { *this = other; } + QProcEnvValue() = default; explicit QProcEnvValue(const QString &value) : stringValue(value) {} explicit QProcEnvValue(const QByteArray &value) : byteValue(value) {} bool operator==(const QProcEnvValue &other) const diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index f95502e75f..3cc6d559c1 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -398,10 +398,13 @@ class Q_CORE_EXPORT QVariant : type(variantType), is_shared(false), is_null(false) {} - inline Private(const Private &other) Q_DECL_NOTHROW +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + Private(const Private &other) Q_DECL_NOTHROW : data(other.data), type(other.type), is_shared(other.is_shared), is_null(other.is_null) {} + Private &operator=(const Private &other) Q_DECL_NOTHROW = default; +#endif union Data { char c; diff --git a/src/corelib/tools/qbytearraylist.h b/src/corelib/tools/qbytearraylist.h index d69e8bb54b..1261e1757c 100644 --- a/src/corelib/tools/qbytearraylist.h +++ b/src/corelib/tools/qbytearraylist.h @@ -67,7 +67,7 @@ template <> struct QListSpecialMethods { #ifndef Q_CLANG_QDOC protected: - ~QListSpecialMethods() {} + ~QListSpecialMethods() = default; #endif public: inline QByteArray join() const diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h index 6643288bd5..e593ba9aa3 100644 --- a/src/corelib/tools/qlist.h +++ b/src/corelib/tools/qlist.h @@ -73,7 +73,7 @@ template class QSet; template struct QListSpecialMethods { protected: - ~QListSpecialMethods() {} + ~QListSpecialMethods() = default; }; template <> struct QListSpecialMethods; template <> struct QListSpecialMethods; @@ -249,6 +249,8 @@ public: // can't remove it in Qt 5, since doing so would make the type trivial, // which changes the way it's passed to functions by value. inline iterator(const iterator &o) Q_DECL_NOTHROW : i(o.i){} + inline iterator &operator=(const iterator &o) Q_DECL_NOTHROW + { i = o.i; return *this; } #endif inline T &operator*() const { return i->t(); } inline T *operator->() const { return &i->t(); } @@ -302,6 +304,8 @@ public: // can't remove it in Qt 5, since doing so would make the type trivial, // which changes the way it's passed to functions by value. inline const_iterator(const const_iterator &o) Q_DECL_NOTHROW : i(o.i) {} + inline const_iterator &operator=(const const_iterator &o) Q_DECL_NOTHROW + { i = o.i; return *this; } #endif #ifdef QT_STRICT_ITERATORS inline explicit const_iterator(const iterator &o) Q_DECL_NOTHROW : i(o.i) {} diff --git a/src/corelib/tools/qstringlist.h b/src/corelib/tools/qstringlist.h index b6c48488df..6b04b7aef1 100644 --- a/src/corelib/tools/qstringlist.h +++ b/src/corelib/tools/qstringlist.h @@ -66,7 +66,7 @@ template <> struct QListSpecialMethods { #ifndef Q_QDOC protected: - ~QListSpecialMethods() {} + ~QListSpecialMethods() = default; #endif public: inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); diff --git a/src/gui/painting/qtriangulator_p.h b/src/gui/painting/qtriangulator_p.h index 8f043fc925..c9ae2571f4 100644 --- a/src/gui/painting/qtriangulator_p.h +++ b/src/gui/painting/qtriangulator_p.h @@ -93,6 +93,8 @@ public: return indices16.size(); } + QVertexIndexVector() = default; + QVertexIndexVector(const QVertexIndexVector &other) = default; inline QVertexIndexVector &operator = (const QVertexIndexVector &other) { if (t == UnsignedInt) diff --git a/src/gui/text/qtextobject.h b/src/gui/text/qtextobject.h index 067f8473ea..694eb729d5 100644 --- a/src/gui/text/qtextobject.h +++ b/src/gui/text/qtextobject.h @@ -263,6 +263,7 @@ public: iterator() : p(nullptr), b(0), e(0), n(0) {} #if QT_VERSION < QT_VERSION_CHECK(6,0,0) iterator(const iterator &o) : p(o.p), b(o.b), e(o.e), n(o.n) {} + iterator &operator=(const iterator &o) = default; #endif QTextFragment fragment() const; diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h index 8ae07efc81..763575ff5b 100644 --- a/src/widgets/styles/qstyleoption.h +++ b/src/widgets/styles/qstyleoption.h @@ -118,6 +118,7 @@ public: QStyleOptionFocusRect(); QStyleOptionFocusRect(const QStyleOptionFocusRect &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionFocusRect &operator=(const QStyleOptionFocusRect &other) = default; protected: QStyleOptionFocusRect(int version); @@ -142,6 +143,7 @@ public: QStyleOptionFrame(); QStyleOptionFrame(const QStyleOptionFrame &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionFrame &operator=(const QStyleOptionFrame &other) = default; protected: QStyleOptionFrame(int version); @@ -171,6 +173,7 @@ public: QStyleOptionTabWidgetFrame(); inline QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionTabWidgetFrame &operator=(const QStyleOptionTabWidgetFrame &other) = default; protected: QStyleOptionTabWidgetFrame(int version); @@ -194,6 +197,7 @@ public: QStyleOptionTabBarBase(); QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionTabBarBase &operator=(const QStyleOptionTabBarBase &other) = default; protected: QStyleOptionTabBarBase(int version); @@ -225,6 +229,7 @@ public: QStyleOptionHeader(); QStyleOptionHeader(const QStyleOptionHeader &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionHeader &operator=(const QStyleOptionHeader &other) = default; protected: QStyleOptionHeader(int version); @@ -247,6 +252,7 @@ public: QStyleOptionButton(); QStyleOptionButton(const QStyleOptionButton &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionButton &operator=(const QStyleOptionButton &other) = default; protected: QStyleOptionButton(int version); @@ -284,6 +290,7 @@ public: QStyleOptionTab(); QStyleOptionTab(const QStyleOptionTab &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionTab &operator=(const QStyleOptionTab &other) = default; protected: QStyleOptionTab(int version); @@ -314,6 +321,7 @@ public: int midLineWidth; QStyleOptionToolBar(); QStyleOptionToolBar(const QStyleOptionToolBar &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionToolBar &operator=(const QStyleOptionToolBar &other) = default; protected: QStyleOptionToolBar(int version); @@ -341,6 +349,7 @@ public: QStyleOptionProgressBar(); QStyleOptionProgressBar(const QStyleOptionProgressBar &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionProgressBar &operator=(const QStyleOptionProgressBar &other) = default; protected: QStyleOptionProgressBar(int version); @@ -371,6 +380,7 @@ public: QStyleOptionMenuItem(); QStyleOptionMenuItem(const QStyleOptionMenuItem &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionMenuItem &operator=(const QStyleOptionMenuItem &other) = default; protected: QStyleOptionMenuItem(int version); @@ -390,6 +400,7 @@ public: QStyleOptionDockWidget(); QStyleOptionDockWidget(const QStyleOptionDockWidget &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionDockWidget &operator=(const QStyleOptionDockWidget &other) = default; protected: QStyleOptionDockWidget(int version); @@ -441,6 +452,7 @@ public: QStyleOptionViewItem(); QStyleOptionViewItem(const QStyleOptionViewItem &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionViewItem &operator=(const QStyleOptionViewItem &other) = default; protected: QStyleOptionViewItem(int version); @@ -471,6 +483,7 @@ public: QStyleOptionToolBox(); QStyleOptionToolBox(const QStyleOptionToolBox &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionToolBox &operator=(const QStyleOptionToolBox &other) = default; protected: QStyleOptionToolBox(int version); @@ -490,6 +503,7 @@ public: QStyleOptionRubberBand(); QStyleOptionRubberBand(const QStyleOptionRubberBand &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionRubberBand &operator=(const QStyleOptionRubberBand &other) = default; protected: QStyleOptionRubberBand(int version); @@ -508,6 +522,7 @@ public: QStyleOptionComplex(int version = QStyleOptionComplex::Version, int type = SO_Complex); QStyleOptionComplex(const QStyleOptionComplex &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionComplex &operator=(const QStyleOptionComplex &other) = default; }; #if QT_CONFIG(slider) @@ -532,6 +547,7 @@ public: QStyleOptionSlider(); QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionSlider &operator=(const QStyleOptionSlider &other) = default; protected: QStyleOptionSlider(int version); @@ -551,6 +567,7 @@ public: QStyleOptionSpinBox(); QStyleOptionSpinBox(const QStyleOptionSpinBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionSpinBox &operator=(const QStyleOptionSpinBox &other) = default; protected: QStyleOptionSpinBox(int version); @@ -578,6 +595,7 @@ public: QStyleOptionToolButton(); QStyleOptionToolButton(const QStyleOptionToolButton &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionToolButton &operator=(const QStyleOptionToolButton &other) = default; protected: QStyleOptionToolButton(int version); @@ -600,6 +618,7 @@ public: QStyleOptionComboBox(); QStyleOptionComboBox(const QStyleOptionComboBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionComboBox &operator=(const QStyleOptionComboBox &other) = default; protected: QStyleOptionComboBox(int version); @@ -618,6 +637,7 @@ public: QStyleOptionTitleBar(); QStyleOptionTitleBar(const QStyleOptionTitleBar &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionTitleBar &operator=(const QStyleOptionTitleBar &other) = default; protected: QStyleOptionTitleBar(int version); @@ -638,6 +658,7 @@ public: QStyleOptionGroupBox(); QStyleOptionGroupBox(const QStyleOptionGroupBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionGroupBox &operator=(const QStyleOptionGroupBox &other) = default; protected: QStyleOptionGroupBox(int version); }; @@ -652,6 +673,7 @@ public: QStyleOptionSizeGrip(); QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other) : QStyleOptionComplex(Version, Type) { *this = other; } + QStyleOptionSizeGrip &operator=(const QStyleOptionSizeGrip &other) = default; protected: QStyleOptionSizeGrip(int version); }; @@ -668,6 +690,7 @@ public: QStyleOptionGraphicsItem(); QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other) : QStyleOption(Version, Type) { *this = other; } + QStyleOptionGraphicsItem &operator=(const QStyleOptionGraphicsItem &other) = default; static qreal levelOfDetailFromTransform(const QTransform &worldTransform); protected: QStyleOptionGraphicsItem(int version);