From: Ferry Huberts Date: Tue, 23 Feb 2016 18:49:01 +0000 (+0100) Subject: p2pd: fix GCC 6 warnings X-Git-Tag: v0.9.5~355 X-Git-Url: http://olsr.org/git/?p=olsrd.git;a=commitdiff_plain;h=8a949a4544e2c63e7b66c8c50817e728f21024b6 p2pd: fix GCC 6 warnings src/NetworkInterfaces.c: In function ‘CreateInterface’: src/NetworkInterfaces.c:247:50: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] newIf->intAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(&ifr.ifr_addr))->sin_addr; ^ src/NetworkInterfaces.c:260:52: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] newIf->broadAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(&ifr.ifr_broadaddr))->sin_addr; ^ src/NetworkInterfaces.c: In function ‘CreateNonOlsrNetworkInterfaces’: src/NetworkInterfaces.c:368:40: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] ipAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(&ifr->ifr_addr))->sin_addr; ^ Signed-off-by: Ferry Huberts --- diff --git a/lib/p2pd/src/NetworkInterfaces.c b/lib/p2pd/src/NetworkInterfaces.c index 8a015d0b..77c13a55 100644 --- a/lib/p2pd/src/NetworkInterfaces.c +++ b/lib/p2pd/src/NetworkInterfaces.c @@ -244,7 +244,8 @@ CreateInterface(const char *ifName, struct interface_olsr *olsrIntf) newIf->intAddr.v4.s_addr = inet_addr("0.0.0.0"); } else { /* Downcast to correct sockaddr subtype */ - newIf->intAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(&ifr.ifr_addr))->sin_addr; + struct sockaddr* ifra = &ifr.ifr_addr; + newIf->intAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(ifra))->sin_addr; } /* For a non-OLSR interface, retrieve the IP broadcast address ourselves */ @@ -257,7 +258,8 @@ CreateInterface(const char *ifName, struct interface_olsr *olsrIntf) newIf->broadAddr.v4.s_addr = inet_addr("0.0.0.0"); } else { /* Downcast to correct sockaddr subtype */ - newIf->broadAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(&ifr.ifr_broadaddr))->sin_addr; + struct sockaddr* ifrb = &ifr.ifr_broadaddr; + newIf->broadAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(ifrb))->sin_addr; } } @@ -365,7 +367,10 @@ CreateNonOlsrNetworkInterfaces(struct interface_olsr *skipThisIntf) //} /* ...find the OLSR interface structure, if any */ - ipAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(&ifr->ifr_addr))->sin_addr; + { + struct sockaddr* ifra = &ifr->ifr_addr; + ipAddr.v4 = ((struct sockaddr_in *) ARM_NOWARN_ALIGN(ifra))->sin_addr; + } olsrIntf = if_ifwithaddr(&ipAddr); if (skipThisIntf != NULL && olsrIntf == skipThisIntf) {