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 )