[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 17 15:50:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #29 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Pedro Alves from comment #0)
>    union
>    {
>      int m_dummy;
>      T m_item;

Here, changing m_dummy to be unsigned char[sizeof(T)] (or std::byte instead of
unsigned char), so that the buffer starts fully zero-initialized, avoids the
warning.  Similarly, in msebor's comment #15 testcase, having the C constructor
initialize x instead of t avoids the warning.  For some reason, this isn't
working for me with actual std::optional.


More information about the Gcc-bugs mailing list