From e7e4af869f7144fa9a265ccf1e15c7b2f182ac2c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 21 Apr 2022 14:22:08 +0200 Subject: [PATCH] Adjust handling of -Wsuggest-override It seems that on older GCCs (e.g. the one from Ubuntu 18.04) the pragma to temporarily turn off this warning does not work, so here we only use it on newer GCCs where we can turn it off for libraries that trigger the warning (mostly asdcplib, but also wxWidgets). --- src/lib/warnings.h | 3 +-- wscript | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/warnings.h b/src/lib/warnings.h index ca8a9ab5e..c6c2f7e0c 100644 --- a/src/lib/warnings.h +++ b/src/lib/warnings.h @@ -35,8 +35,7 @@ _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \ _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \ _Pragma("GCC diagnostic ignored \"-Waddress\"") \ - _Pragma("GCC diagnostic ignored \"-Wparentheses\"") \ - _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") + _Pragma("GCC diagnostic ignored \"-Wparentheses\"") #endif #define DCPOMATIC_ENABLE_WARNINGS \ diff --git a/wscript b/wscript index 4ccadf6fd..994f1b6f3 100644 --- a/wscript +++ b/wscript @@ -109,7 +109,6 @@ def configure(conf): '-Wall', '-Wextra', '-Wwrite-strings', - '-Wsuggest-override', '-Wno-error=deprecated', # I tried and failed to ignore these with _Pragma '-Wno-ignored-qualifiers', @@ -127,6 +126,10 @@ def configure(conf): if int(gcc[0]) >= 8: # I tried and failed to ignore these with _Pragma conf.env.append_value('CXXFLAGS', ['-Wno-cast-function-type']) + if int(gcc[0]) >= 9: + # I can't get #pragma GCC diagnostic ignored "-Wsuggest-override" to work on older GCCs, + # so only enable this if we're on a newer one + conf.env.append_value('CXXFLAGS', '-Wsuggest-override') have_c11 = int(gcc[0]) >= 4 and int(gcc[1]) >= 8 and int(gcc[2]) >= 1 # Most gccs still give these warnings from boost::optional conf.env.append_value('CXXFLAGS', ['-Wno-maybe-uninitialized']) -- 2.30.2