https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116912
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-09-30 Status|UNCONFIRMED |WAITING Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- uint64_t is `unsigned long` while __u64 is `unsigned long long`; these 2 types don't alias in the access sense. So that looks like an aliasing issue. What options are you compiling with? If at -O2 (or -Os or -O3), then you either need -fno-strict-aliasing or you should fix the code to use either memcpy, an union or change to use the same 64bit integer type.