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.