https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107403
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- No this is correct. i.y << 8ULL Is all done in 56bit type as the type is greater than the size of int. Note c allows this behavior while c++ does not.