https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108667
Bug ID: 108667 Summary: Spurious "maybe used uninitialized [-Wmaybe-uninitialized]" warning Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: alvaro.begue at gmail dot com Target Milestone: --- I am using g++-12.1.0 on x86-64, but g++-12.2.0 in godbolt.org shows the same problem The options are -O3 -Wmaybe-uninitialized . The code: #include <functional> struct S { S(std::function<void()> f) : f(f) {} std::function<void()> g; std::function<void()> f; }; int main() { S s([](){}); s.f(); } Compiler output (from godbolt.org): In file included from /opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/functional:59, from <source>:1: In copy constructor 'std::function<_Res(_ArgTypes ...)>::function(const std::function<_Res(_ArgTypes ...)>&) [with _Res = void; _ArgTypes = {}]', inlined from 'S::S(std::function<void()>)' at <source>:4:34, inlined from 'int main()' at <source>:11:15: /opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/bits/std_function.h:391:17: warning: '<anonymous>' may be used uninitialized [-Wmaybe-uninitialized] 391 | __x._M_manager(_M_functor, __x._M_functor, __clone_functor); | ~~~~^~~~~~~~~~ /opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/bits/std_function.h: In function 'int main()': /opt/compiler-explorer/gcc-12.2.0/include/c++/12.2.0/bits/std_function.h:267:7: note: by argument 2 of type 'const std::_Any_data&' to 'static bool std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_manager(std::_Any_data&, const std::_Any_data&, std::_Manager_operation) [with _Res = void; _Functor = main()::<lambda()>; _ArgTypes = {}]' declared here 267 | _M_manager(_Any_data& __dest, const _Any_data& __source, | ^~~~~~~~~~ <source>:11:15: note: '<anonymous>' declared here 11 | S s([](){}); | ^ Compiler returned: 0