https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102801
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- 7, 8, 9 and 10 all warn: mozilla_jwakely0/warn3.cpp: In function 'void foo(Q<C2>&, std::vector<C2>&)': mozilla_jwakely0/warn3.cpp:8:7: warning: '<anonymous>.C::b' may be used uninitialized in this function [-Wmaybe-uninitialized] 8 | class C { | ^ 11 and trunk warn about that and also: /home/jwakely/gcc/12/include/c++/12.0.0/bits/shared_ptr_base.h:709:19: warning: '((const std::__shared_count<__gnu_cxx::_S_atomic>*)((char*)&<unnamed> + offsetof(C2, C2::c.std::optional<C>::<unnamed>.std::_Optional_base<C, false, false>::_M_payload.std::_Optional_payload<C, false, false, false>::<unnamed>.std::_Optional_payload<C, true, false, false>::<unnamed>.std::_Optional_payload_base<C>::_M_payload)))[2].std::__shared_count<>::_M_pi' may be used uninitialized [-Wmaybe-uninitialized] 709 | : _M_pi(__r._M_pi) | ~~~~^~~~~