summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qtmetamacros.h
diff options
context:
space:
mode:
authorKevin Funk <kevin.funk@kdab.com>2022-02-09 21:59:29 +0100
committerThiago Macieira <thiago.macieira@intel.com>2022-02-10 12:38:19 +0000
commitf57fd83f7dff66fe54098e0d956d03070d9e16e6 (patch)
tree23591ad04409fb94a5f9c49f41dca1b9ee9a4bb7 /src/corelib/kernel/qtmetamacros.h
parentdcdb8884e732802c92ae96b6d5b21331ddaef55b (diff)
Fix -Wsuggest-override warnings from Clang 11+
Before this patch, Clang versions greater than 11.0.0 emitted -Wsuggest-override warnings whenever the Q_OBJECT macro was used. Excerpt from compiling GammaRay against Qt 6, using Clang 13.0.0: ``` .../qtbase/src/corelib/io/qfile.h:96:5: warning: 'qt_metacall' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] Q_OBJECT ^ .../qt5/qtbase/src/corelib/kernel/qtmetamacros.h:166:17: note: expanded from macro 'Q_OBJECT' virtual int qt_metacall(QMetaObject::Call, int, void **); \ ^ .../qt5/qtbase/src/corelib/io/qfiledevice.h:54:5: note: overridden virtual function is here Q_OBJECT ^ .../qt5/qtbase/src/corelib/kernel/qtmetamacros.h:166:17: note: expanded from macro 'Q_OBJECT' virtual int qt_metacall(QMetaObject::Call, int, void **); \ ^ ``` This was also discussed on the QtCreator mailing list: https://www.mail-archive.com/qt-creator@qt-project.org/msg08500.html Pick-to: 6.2 6.3 Change-Id: I149782472ce8a2e30ed8062ada460c39926f1613 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qtmetamacros.h')
-rw-r--r--src/corelib/kernel/qtmetamacros.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/corelib/kernel/qtmetamacros.h b/src/corelib/kernel/qtmetamacros.h
index fb4dfc5b0d..89f51e97b6 100644
--- a/src/corelib/kernel/qtmetamacros.h
+++ b/src/corelib/kernel/qtmetamacros.h
@@ -136,8 +136,12 @@ QT_BEGIN_NAMESPACE
# define Q_DECL_HIDDEN_STATIC_METACALL Q_DECL_HIDDEN
#endif
-#if defined(Q_CC_CLANG) && Q_CC_CLANG >= 306
-# define Q_OBJECT_NO_OVERRIDE_WARNING QT_WARNING_DISABLE_CLANG("-Winconsistent-missing-override")
+#if defined(Q_CC_CLANG)
+# if Q_CC_CLANG >= 1100
+# define Q_OBJECT_NO_OVERRIDE_WARNING QT_WARNING_DISABLE_CLANG("-Winconsistent-missing-override") QT_WARNING_DISABLE_CLANG("-Wsuggest-override")
+# elif Q_CC_CLANG >= 306
+# define Q_OBJECT_NO_OVERRIDE_WARNING QT_WARNING_DISABLE_CLANG("-Winconsistent-missing-override")
+# endif
#elif defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && Q_CC_GNU >= 501
# define Q_OBJECT_NO_OVERRIDE_WARNING QT_WARNING_DISABLE_GCC("-Wsuggest-override")
#else