https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101257
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |INVALID
--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Thanks for testcase. This indeed is aliasing violation.
We do:
ipa-modref: call stmt md5_single (&buf, digest_18(D));
ipa-modref: call to md5_single/11 does not use ref: MEM[(uint64_t *)_8] alias
sets: 3->3
which makes us to optimize it away. This is uint64_t store from
*((uint64_t *) & buf[i - 8]) = (uint64_t) len *8;
and md5_single does uint32_t loads.
So I am marking this as invalid.