https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116316

--- Comment #2 from qinzhao at gcc dot gnu.org ---
(In reply to Andrew Pinski from comment #1)
> <source>:13:6: warning: dereferencing type-punned pointer will break
> strict-aliasing rules [-Wstrict-aliasing]
>    13 |     *(size_t *)(&(array_annotated->b)) = 10;
>       |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> -fno-strict-aliasing  fixes it.
> 
> You access `array_annotated->b` via size_t (which is most likely `unsigned
> long`) and via int. Since long and int are distant types (and not signed
> versions of each other) they don't alias.

Okay, I see. thanks a lot.
I did suspect that this is a source code issue, now confirmed. -:)

Reply via email to