Package: libc6-dev
Version: 2.10.2-2

Type punning between pointers to struct sockaddr, struct sockaddr_storage
and sockaddr_in(6) is explicitly required by the sockets interface.  For
example, RFC 3493 Section 3.8 gives the following example:

      if (bind(s, (struct sockaddr *) &sin6, sizeof(sin6)) == -1)

Unfortunately, gcc-4.4 with -fstrict-aliasing=2 complains on this kind
of code.  This may potentially break in code optimised with -O2 or greater
(it probably doesn't, though, since most of the code that triggers this
warning doesn't actually violate the C99 aliasing restrictions).

I suggest that the definitions of struct sockaddr and struct sockaddr_storage
should be equipped with

  __attribute__ ((may_alias))

                                        Juliusz



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to