diff options
author | Kevin Funk <kevin.funk@kdab.com> | 2022-02-09 21:59:29 +0100 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-02-10 12:38:19 +0000 |
commit | f57fd83f7dff66fe54098e0d956d03070d9e16e6 (patch) | |
tree | 23591ad04409fb94a5f9c49f41dca1b9ee9a4bb7 /src/corelib/kernel/qtmetamacros.h | |
parent | dcdb8884e732802c92ae96b6d5b21331ddaef55b (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.h | 8 |
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 |