summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/global/qxp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-11-10 11:00:29 +0100
committerMarc Mutz <marc.mutz@qt.io>2023-11-13 18:42:01 +0000
commit51c75ae2ff4f19d8ea7f823f40b3d5027b3f08a1 (patch)
tree4fb1cb6d1f5796d9a86397a9b2701e576612b4f1 /tests/auto/corelib/global/qxp
parentddce99989fcc956cb59df722eea0e788a867bd7a (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.txt7
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
+)