|
From: | Thomas Huth |
Subject: | Re: [Qemu-devel] [PATCH 04/12] slirp: add in6_multicast() and use it instead of IN6_IS_ADDR_MULTICAST() |
Date: | Tue, 9 Jan 2018 18:08:06 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 09.01.2018 17:33, Richard Henderson wrote: > On 01/08/2018 09:28 AM, Philippe Mathieu-Daudé wrote: >> Host: Mac OS 10.12.5 >> Compiler: Apple LLVM version 8.1.0 (clang-802.0.42) >> >> slirp/ip6_icmp.c:79:32: warning: taking address of packed member 'ip_src' >> of class or >> structure 'ip6' may result in an unaligned pointer value >> [-Waddress-of-packed-member] >> if (IN6_IS_ADDR_MULTICAST(&ip->ip_src) || >> ^~~~~~~~~~ >> /usr/include/netinet6/in6.h:299:36: note: expanded from macro >> 'IN6_IS_ADDR_MULTICAST' >> #define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr[0] == 0xff) > > The fact that you replace a macro with a function of exactly the same code in > order to avoid a diagnostic sure looks like a compiler bug to me. I think this might also be a bug in the macro definitions. On Linux, it is defined like this: #define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff) Thomas
[Prev in Thread] | Current Thread | [Next in Thread] |