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.

Reply via email to