[Bug tree-optimization/80344] -Wuninitialized triggering on a ctor on ARM
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 7 11:15:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80344
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
I believe this is exposed by inlining
this_14(D)->http_ver = Http::ProtocolVersion (); [return slot optimization]
as
D.148385 ={v} {CLOBBER};
MEM[(struct &)this_14(D) + 4] = D.148385;
this_14(D)->http_ver.protocol = 1;
this_14(D)->http_ver.major = 1;
this_14(D)->http_ver.minor = 1;
which is
AnyP::ProtocolVersion Http::ProtocolVersion() ()
{
<bb 2> [0.00%]:
AnyP::ProtocolVersion::ProtocolVersion (&<retval>, 1, 1, 1);
return <retval>;
inlined into like
AnyP::ProtocolVersion Http::ProtocolVersion() ()
{
struct ProtocolVersion * D.148207;
<bb 2> [100.00%]:
MEM[(struct &)&<retval>] ={v} {CLOBBER};
<retval>.protocol = 1;
<retval>.major = 1;
<retval>.minor = 1;
_7 = &<retval>;
return <retval>;
not sure how this ends up happening. Smaller testcase appreciated ;)
The above is from 029t.einline vs. 028t.inline_param1.
More information about the Gcc-bugs
mailing list