diff options
author | Thomas Huth <thuth@redhat.com> | 2022-06-27 10:26:32 +0200 |
---|---|---|
committer | Alexey Kardashevskiy <aik@ozlabs.ru> | 2023-02-28 15:23:05 +1100 |
commit | e77d7f9c78179c6c9ad1aea9e1dad32c0a6f2d0a (patch) | |
tree | 6507bb1dd84afca59a496b2a44fdf7e731066bf0 /lib/libnet/ipv6.c | |
parent | 6b6c16b4b40763507cf1f518096f3c3883c5cf2d (diff) | |
download | SLOF-e77d7f9c78179c6c9ad1aea9e1dad32c0a6f2d0a.zip SLOF-e77d7f9c78179c6c9ad1aea9e1dad32c0a6f2d0a.tar.gz SLOF-e77d7f9c78179c6c9ad1aea9e1dad32c0a6f2d0a.tar.bz2 |
lib/libnet/ipv6: Silence compiler warning from Clang
When compiling the libnet code with Clang (e.g. for the s390-ccw bios),
it complains with the following warning:
ipv6.c:447:18: warning: variable length array folded to constant array
as an extension [-Wgnu-folding-constant]
unsigned short raw[ip6size];
^
The warning is completely harmless, of course. Anyway let's rewrite the
code a little bit to make the compiler silent again.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'lib/libnet/ipv6.c')
-rw-r--r-- | lib/libnet/ipv6.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/libnet/ipv6.c b/lib/libnet/ipv6.c index 6420004..259087b 100644 --- a/lib/libnet/ipv6.c +++ b/lib/libnet/ipv6.c @@ -441,10 +441,9 @@ static unsigned short ip6_checksum(struct ip6hdr *ip6h, unsigned char *packet, { int i; unsigned long checksum; - const int ip6size = sizeof(struct ip6hdr)/sizeof(unsigned short); union { struct ip6hdr ip6h; - unsigned short raw[ip6size]; + uint16_t raw[sizeof(struct ip6hdr) / sizeof(uint16_t)]; } pseudo; memcpy (&pseudo.ip6h, ip6h, sizeof(struct ip6hdr)); @@ -455,7 +454,7 @@ static unsigned short ip6_checksum(struct ip6hdr *ip6h, unsigned char *packet, for (checksum = 0, i = 0; i < bytes; i += 2) checksum += (packet[i] << 8) | packet[i + 1]; - for (i = 0; i < ip6size; i++) + for (i = 0; i < (int)(sizeof(pseudo.raw) / sizeof(pseudo.raw[0])); i++) checksum += pseudo.raw[i]; checksum = (checksum >> 16) + (checksum & 0xffff); |