diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-11-10 11:00:29 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-11-13 18:42:01 +0000 |
commit | 51c75ae2ff4f19d8ea7f823f40b3d5027b3f08a1 (patch) | |
tree | 4fb1cb6d1f5796d9a86397a9b2701e576612b4f1 /tests/auto/corelib/global/qxp | |
parent | ddce99989fcc956cb59df722eea0e788a867bd7a (diff) |
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 a1bdee4697b7125bd0972284bfb33a56fcb441aa.
Change-Id: I12eb1f8d486b1e2413675991659bf9ad3a7869ae
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Diffstat (limited to 'tests/auto/corelib/global/qxp')
-rw-r--r-- | tests/auto/corelib/global/qxp/is_virtual_base_of/CMakeLists.txt | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/auto/corelib/global/qxp/is_virtual_base_of/CMakeLists.txt b/tests/auto/corelib/global/qxp/is_virtual_base_of/CMakeLists.txt index 5762a32f48..85a6daab7c 100644 --- a/tests/auto/corelib/global/qxp/is_virtual_base_of/CMakeLists.txt +++ b/tests/auto/corelib/global/qxp/is_virtual_base_of/CMakeLists.txt @@ -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 +) |