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

--- Comment #5 from Florian Weimer <fw at gcc dot gnu.org> ---
(In reply to Marek Polacek from comment #4)
> Can you provide an example how do you envision such a pragma?  Should it
> only have an effect on "sockaddr{,_*}"-named structs?

I expect that we'd put something like this into <stdc-predef.h>:

#if defined (__GNUC__)
# if __GNUC__ >= 7
#  pragma GCC may_alias struct sockaddr
#  pragma GCC may_alias struct sockaddr_storage
#  pragma GCC may_alias struct sockaddr_in
#  pragma GCC may_alias struct sockaddr_in6
#  pragma GCC may_alias struct sockaddr_un
…
# endif  /* __GNUC__ >= 4 */
#endif  /* __GNUC__ */

After that, if GCC creates a declaration or forward definition of, say, struct
sockaddr_in, it will automatically carry the may_alias attribute.  (For
consistency, this should also apply to nested C++ namespaces etc.)

Reply via email to