https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101684
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note find_olap_engine has a similar issue too. int64_t int_value = *(int64_t*)(data); int32_t frac_value = *(int32_t*)((char*)data + sizeof(int64_t)); Should be: int64_t int_value; memcpy(&int_value, data, sizeof(int_value)); int32_t frac_value; memcpy(&frac_value, (char*)data + sizeof(int64_t), sizeof(frac_value));