From f194a516e6689ceb23a9839696a6cfd51bdeeeac Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 7 May 2020 15:31:44 +0100 Subject: [PATCH] Keep both Clang and gcc happy with fallthrough cases --- lib/wsprd/nhash.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/wsprd/nhash.c b/lib/wsprd/nhash.c index e97a528d9..b158fdd82 100644 --- a/lib/wsprd/nhash.c +++ b/lib/wsprd/nhash.c @@ -348,17 +348,28 @@ uint32_t nhash( const void *key, size_t length, uint32_t initval) /*-------------------------------- last block: affect all 32 bits of (c) */ switch(length) /* all the case statements fall through */ { - case 12: c+=((uint32_t)k[11])<<24; __attribute__ ((fallthrough)); - case 11: c+=((uint32_t)k[10])<<16; __attribute__ ((fallthrough)); - case 10: c+=((uint32_t)k[9])<<8; __attribute__ ((fallthrough)); - case 9 : c+=k[8]; __attribute__ ((fallthrough)); - case 8 : b+=((uint32_t)k[7])<<24; __attribute__ ((fallthrough)); - case 7 : b+=((uint32_t)k[6])<<16; __attribute__ ((fallthrough)); - case 6 : b+=((uint32_t)k[5])<<8; __attribute__ ((fallthrough)); - case 5 : b+=k[4]; __attribute__ ((fallthrough)); - case 4 : a+=((uint32_t)k[3])<<24; __attribute__ ((fallthrough)); - case 3 : a+=((uint32_t)k[2])<<16; __attribute__ ((fallthrough)); - case 2 : a+=((uint32_t)k[1])<<8; __attribute__ ((fallthrough)); + case 12: c+=((uint32_t)k[11])<<24; + [[fallthrough]]; + case 11: c+=((uint32_t)k[10])<<16; + [[fallthrough]]; + case 10: c+=((uint32_t)k[9])<<8; + [[fallthrough]]; + case 9 : c+=k[8]; + [[fallthrough]]; + case 8 : b+=((uint32_t)k[7])<<24; + [[fallthrough]]; + case 7 : b+=((uint32_t)k[6])<<16; + [[fallthrough]]; + case 6 : b+=((uint32_t)k[5])<<8; + [[fallthrough]]; + case 5 : b+=k[4]; + [[fallthrough]]; + case 4 : a+=((uint32_t)k[3])<<24; + [[fallthrough]]; + case 3 : a+=((uint32_t)k[2])<<16; + [[fallthrough]]; + case 2 : a+=((uint32_t)k[1])<<8; + [[fallthrough]]; case 1 : a+=k[0]; break; case 0 : return c;