https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107290
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |24639
Keywords| |diagnostic
Status|UNCONFIRMED |NEW
Last reconfirmed| |2022-10-17
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I can confirm the diagnostics at -O{1,2,3}. We diagnose the aggregate copy
in
<bb 2> [local count: 1073741824]:
MEM[(struct plain_array *)&p] ={v} {CLOBBER};
MEM[(struct DenseStorage *)&D.103583] ={v} {CLOBBER};
MEM[(struct DenseStorage *)&D.103583].m_data = MEM[(const struct DenseStorage
&)&p].m_data;
Foo::Foo (&Foo, &D.103583);
D.103583 ={v} {CLOBBER(eol)};
p ={v} {CLOBBER(eol)};
Foo ={v} {CLOBBER(eol)};
return;
clearly 'p' is completely uninitialized and we copy m_data from it to
the value argument of Foo::Foo.
'p' gets initialized by
struct Points p;
<<cleanup_point <<< Unknown tree: expr_stmt
Eigen::Array<float, 3, 1>::Array (&p) >>>>>;
I don't know enough C++ to decipher what supposedly initializes m_data.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639
[Bug 24639] [meta-bug] bug to track all Wuninitialized issues