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>
This commit is contained in:
Kevin Funk 2022-02-09 21:59:29 +01:00 committed by Thiago Macieira
parent dcdb8884e7
commit f57fd83f7d

View File

@ -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