[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning
palves at redhat dot com
gcc-bugzilla@gcc.gnu.org
Fri May 5 15:37:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
--- Comment #9 from Pedro Alves <palves at redhat dot com> ---
> So maybe we just want to use a #pragma around the std::optional destructor to suppress this warning.
I had tried that last night, but unfortunately it couldn't get it to work,
because the warning triggers in A, not optional<A>. Users of optional<T> have
to put the #pragma around their the Ts (in this case A::~A()). I.e., this
would work:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
struct A
{
A () : m (get ()) {}
~A () { set (m); } // warns here
int m;
};
#pragma GCC diagnostic pop
I think as we'll use gdb/std::optional more and more, that would become too
unwildy/ugly. My current workaround in gdb is -Wno-error=maybe-uninitialized:
[1] - https://sourceware.org/ml/gdb-patches/2017-05/msg00130.html
More information about the Gcc-bugs
mailing list