From 457147d1b02c89f9f9f2a49928190d3f09a41ad0 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 18 Oct 2022 03:20:36 +0300 Subject: [PATCH] Suppress -Wmaybe-uninitialized in emplace_impl --- include/boost/variant2/variant.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/boost/variant2/variant.hpp b/include/boost/variant2/variant.hpp index 0f14659..e2bbc3a 100644 --- a/include/boost/variant2/variant.hpp +++ b/include/boost/variant2/variant.hpp @@ -685,7 +685,17 @@ template union variant_storage_impl BOOST_CXX14_CONSTEXPR void emplace_impl( mp11::mp_true, mp11::mp_size_t, A&&... a ) { +#if defined(BOOST_GCC) && (__GNUC__ >= 7) +# pragma GCC diagnostic push +// False positive in at least GCC 7 and GCC 10 ASAN triggered by monostate (via result) +# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif + *this = variant_storage_impl( mp11::mp_size_t(), std::forward(a)... ); + +#if defined(BOOST_GCC) && (__GNUC__ >= 7) +# pragma GCC diagnostic pop +#endif } template BOOST_CXX14_CONSTEXPR void emplace( mp11::mp_size_t, A&&... a )