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

Reply via email to