https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120559
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- struct tx_buffer_entry *entry; uint32_t * ptr = (void *)(&entry); uint32_t value = (*ptr | (channel & 3)); // alias violation here, reading a `struct tx_buffer_entry *` value via uint32_t. Use -fno-strict-aliasing or fix your code differently. https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8 is a good place to start reading up about strict aliasing. But there are many more pages about it.