The warning is bogus. Fixed thusly. Andrew.
2009-10-22 Andrew Haley <a...@redhat.com> * native/jni/native-lib/cpnet.c (cpnet_addMembership): Fix aliasing warning. (cpnet_dropMembership): Likewise. Index: cpnet.c =================================================================== RCS file: /sources/classpath/classpath/native/jni/native-lib/cpnet.c,v retrieving revision 1.10 diff -u -p -r1.10 cpnet.c --- cpnet.c 25 Jun 2007 09:44:36 -0000 1.10 +++ cpnet.c 22 Oct 2009 16:18:07 -0000 @@ -578,9 +578,10 @@ jint cpnet_addMembership (JNIEnv *env UN { struct ip_mreq req; int ret; + struct sockaddr_in *sockaddr = (struct sockaddr_in *)addr->data; memset(&req, 0, sizeof(req)); - req.imr_multiaddr = ((struct sockaddr_in *)addr->data)->sin_addr; + req.imr_multiaddr = sockaddr->sin_addr; req.imr_interface.s_addr = INADDR_ANY; ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &req, sizeof(req)); if (ret != 0) @@ -593,9 +594,10 @@ jint cpnet_dropMembership (JNIEnv *env U { struct ip_mreq req; int ret; + struct sockaddr_in *sockaddr = (struct sockaddr_in *)addr->data; memset(&req, 0, sizeof(req)); - req.imr_multiaddr = ((struct sockaddr_in *)addr->data)->sin_addr; + req.imr_multiaddr = sockaddr->sin_addr; req.imr_interface.s_addr = INADDR_ANY; ret = setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &req, sizeof(req)); if (ret != 0) z