From 90f2b84259df799b89ca8e3c9d07e86b2574710b Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 23 Jun 2026 16:26:30 +0200 Subject: [PATCH] Supress 'suggest-override' warnings in mocked methods --- include/turtle/config.hpp | 23 ++++++++++++++++++++++- include/turtle/detail/mock_impl.hpp | 7 +++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/include/turtle/config.hpp b/include/turtle/config.hpp index 9395005..c1f4a84 100644 --- a/include/turtle/config.hpp +++ b/include/turtle/config.hpp @@ -1,7 +1,7 @@ // http://turtle.sourceforge.net // // Copyright Mathieu Champlon 2009 -// Copyright 2020-2025 Alexander Grund +// Copyright 2020-2026 Alexander Grund // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -32,6 +32,27 @@ # endif #endif +#if defined(__clang__) && defined(__has_warning) +# define MOCK_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") +# define MOCK_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +# if __has_warning("-Wsuggest-override") +# define MOCK_DIAGNOSTIC_IGNORE_SUGGEST_OVERRIDE _Pragma("clang diagnostic ignored \"-Wsuggest-override\"") +# endif +#elif defined(__GNUC__) +# define MOCK_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") +# define MOCK_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +# if(__GNUC__ >= 9) +# define MOCK_DIAGNOSTIC_IGNORE_SUGGEST_OVERRIDE _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") +# endif +#endif +#ifndef MOCK_DIAGNOSTIC_PUSH +# define MOCK_DIAGNOSTIC_PUSH +# define MOCK_DIAGNOSTIC_POP +#endif +#ifndef MOCK_DIAGNOSTIC_IGNORE_SUGGEST_OVERRIDE +# define MOCK_DIAGNOSTIC_IGNORE_SUGGEST_OVERRIDE +#endif + #if BOOST_VERSION >= 107700 # define MOCK_CXX_VERSION BOOST_CXX_VERSION #elif defined(_MSC_VER) diff --git a/include/turtle/detail/mock_impl.hpp b/include/turtle/detail/mock_impl.hpp index 59fe4e0..3d47893 100644 --- a/include/turtle/detail/mock_impl.hpp +++ b/include/turtle/detail/mock_impl.hpp @@ -1,7 +1,7 @@ // http://turtle.sourceforge.net // // Copyright Mathieu Champlon 2008 -// Copyright 2022-2025 Alexander Grund +// Copyright 2022-2026 Alexander Grund // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -60,10 +60,13 @@ namespace mock { namespace detail { #define MOCK_FORWARD_PARAM(z, n, S) std::forward(p##n) #define MOCK_FORWARD_PARAMS(n, S) BOOST_PP_ENUM(n, MOCK_FORWARD_PARAM, S) #define MOCK_METHOD_AUX(name, arity, signature, identifier, qualifier) \ + MOCK_DIAGNOSTIC_PUSH \ + MOCK_DIAGNOSTIC_IGNORE_SUGGEST_OVERRIDE \ MOCK_DECL(name, arity, signature, qualifier) \ { \ return MOCK_ANONYMOUS_HELPER(identifier)(MOCK_FORWARD_PARAMS(arity, signature)); \ - } + } \ + MOCK_DIAGNOSTIC_POP #define MOCK_METHOD_EXT(name, arity, signature, identifier) \ MOCK_METHOD_AUX(name, arity, signature, identifier, ) \