https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77996
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- here is one example where LLVM could be violating C aliasing rules: void FoldingSetNodeID::AddPointer(const void *Ptr) { Bits.append(reinterpret_cast<unsigned *>(&Ptr), reinterpret_cast<unsigned *>(&Ptr+1)); } There could be others.