The warning is bogus. Fixed thusly.
Andrew.
2009-10-22 Andrew Haley <
aph@...>
* 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