tst_qxp_is_virtual_base_of: disable all warnings for GCC < 10
The -Winaccessible-base switch was added for GCC 10. Older GCCs had no
way to suppress the warnings, and the existing suppression of
-Winaccessible-base caused a warning of its own:
qcompilerdetection.h:1125:49: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
1125 | #define QT_DO_PRAGMA(text) _Pragma(#text)
| ^~~~~~~
qcompilerdetection.h:1150:49: note: in expansion of macro ‘QT_DO_PRAGMA’
1150 | # define QT_WARNING_DISABLE_GCC(text) QT_DO_PRAGMA(GCC diagnostic ignored text)
| ^~~~~~~~~~~~
tst_is_virtual_base_of.cpp:53:1: note: in expansion of macro ‘QT_WARNING_DISABLE_GCC’
53 | QT_WARNING_DISABLE_GCC("-Winaccessible-base")
| ^~~~~~~~~~~~~~~~~~~~~~
Since GCC 8 and 9 are slowly fading away as supported compilers, the
simplest fix to get a clean build is to suppress all warnings for the
test on these compilers, by passing -w, as suggested by
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90449.
Short of moving the affected code into a separate header file and
applying `#pragma GCC system_header` to it, there appears to be no
other way to get rid of the warning.
Amends a1bdee4697
.
Change-Id: I12eb1f8d486b1e2413675991659bf9ad3a7869ae
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
ddce99989f
commit
51c75ae2ff
@ -14,3 +14,10 @@ qt_internal_add_test(tst_qxp_is_virtual_base_of
|
||||
LIBRARIES
|
||||
Qt::Core
|
||||
)
|
||||
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90449
|
||||
# GCCs < 10 have no way to suppress "inaccessible base" warnings, except by disabling all warnings:
|
||||
qt_internal_extend_target(tst_qxp_is_virtual_base_of
|
||||
CONDITION GCC AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10")
|
||||
COMPILE_OPTIONS -w
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user