https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52517
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` by the equivalent M = ((unsigned long*)(B))[x/4]; ``` Note that is not equivalent and would cause this to be undefined. Only ` M = *(unsigned long*)(B + x);` is well defined.