Add fallthrough comments to switch cases

Some versions of GCC warn otherwise, which is good.
This commit is contained in:
Lassi Kortela 2019-08-10 01:01:40 +03:00
parent 2ec07684d2
commit 10763df501
2 changed files with 89 additions and 78 deletions

View File

@ -194,15 +194,17 @@ hashword(const uint32_t *k, /* the key, an array of uint32_t values */
/*------------------------------------------- handle the last 3 uint32_t's /*------------------------------------------- handle the last 3 uint32_t's
*/ */
switch (length) /* all the case statements fall through */ switch (length) {
{
case 3: case 3:
c += k[2]; c += k[2];
// fallthrough
case 2: case 2:
b += k[1]; b += k[1];
// fallthrough
case 1: case 1:
a += k[0]; a += k[0];
final(a, b, c); final(a, b, c);
// fallthrough
case 0: /* case 0: nothing left to add */ case 0: /* case 0: nothing left to add */
break; break;
} }
@ -243,15 +245,17 @@ void hashword2(const uint32_t *k, /* the key, an array of uint32_t values */
/*------------------------------------------- handle the last 3 uint32_t's /*------------------------------------------- handle the last 3 uint32_t's
*/ */
switch (length) /* all the case statements fall through */ switch (length) {
{
case 3: case 3:
c += k[2]; c += k[2];
// fallthrough
case 2: case 2:
b += k[1]; b += k[1];
// fallthrough
case 1: case 1:
a += k[0]; a += k[0];
final(a, b, c); final(a, b, c);
// fallthrough
case 0: /* case 0: nothing left to add */ case 0: /* case 0: nothing left to add */
break; break;
} }
@ -348,16 +352,16 @@ uint32_t hashlittle( const void *key, size_t length, uint32_t initval)
switch(length) switch(length)
{ {
case 12: c+=k[2]; b+=k[1]; a+=k[0]; break; case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
case 11: c+=((uint32_t)k8[10])<<16; /* fall through */ case 11: c+=((uint32_t)k8[10])<<16; // fallthrough
case 10: c+=((uint32_t)k8[9])<<8; /* fall through */ case 10: c+=((uint32_t)k8[9])<<8; // fallthrough
case 9 : c+=k8[8]; /* fall through */ case 9 : c+=k8[8]; // fallthrough
case 8 : b+=k[1]; a+=k[0]; break; case 8 : b+=k[1]; a+=k[0]; break;
case 7 : b+=((uint32_t)k8[6])<<16; /* fall through */ case 7 : b+=((uint32_t)k8[6])<<16; // fallthrough
case 6 : b+=((uint32_t)k8[5])<<8; /* fall through */ case 6 : b+=((uint32_t)k8[5])<<8; // fallthrough
case 5 : b+=k8[4]; /* fall through */ case 5 : b+=k8[4]; // fallthrough
case 4 : a+=k[0]; break; case 4 : a+=k[0]; break;
case 3 : a+=((uint32_t)k8[2])<<16; /* fall through */ case 3 : a+=((uint32_t)k8[2])<<16; // fallthrough
case 2 : a+=((uint32_t)k8[1])<<8; /* fall through */ case 2 : a+=((uint32_t)k8[1])<<8; // fallthrough
case 1 : a+=k8[0]; break; case 1 : a+=k8[0]; break;
case 0 : return c; case 0 : return c;
} }
@ -387,23 +391,23 @@ uint32_t hashlittle( const void *key, size_t length, uint32_t initval)
b+=k[2]+(((uint32_t)k[3])<<16); b+=k[2]+(((uint32_t)k[3])<<16);
a+=k[0]+(((uint32_t)k[1])<<16); a+=k[0]+(((uint32_t)k[1])<<16);
break; break;
case 11: c+=((uint32_t)k8[10])<<16; /* fall through */ case 11: c+=((uint32_t)k8[10])<<16; // fallthrough
case 10: c+=k[4]; case 10: c+=k[4];
b+=k[2]+(((uint32_t)k[3])<<16); b+=k[2]+(((uint32_t)k[3])<<16);
a+=k[0]+(((uint32_t)k[1])<<16); a+=k[0]+(((uint32_t)k[1])<<16);
break; break;
case 9 : c+=k8[8]; /* fall through */ case 9 : c+=k8[8]; // fallthrough
case 8 : b+=k[2]+(((uint32_t)k[3])<<16); case 8 : b+=k[2]+(((uint32_t)k[3])<<16);
a+=k[0]+(((uint32_t)k[1])<<16); a+=k[0]+(((uint32_t)k[1])<<16);
break; break;
case 7 : b+=((uint32_t)k8[6])<<16; /* fall through */ case 7 : b+=((uint32_t)k8[6])<<16; // fallthrough
case 6 : b+=k[2]; case 6 : b+=k[2];
a+=k[0]+(((uint32_t)k[1])<<16); a+=k[0]+(((uint32_t)k[1])<<16);
break; break;
case 5 : b+=k8[4]; /* fall through */ case 5 : b+=k8[4]; // fallthrough
case 4 : a+=k[0]+(((uint32_t)k[1])<<16); case 4 : a+=k[0]+(((uint32_t)k[1])<<16);
break; break;
case 3 : a+=((uint32_t)k8[2])<<16; /* fall through */ case 3 : a+=((uint32_t)k8[2])<<16; // fallthrough
case 2 : a+=k[0]; case 2 : a+=k[0];
break; break;
case 1 : a+=k8[0]; case 1 : a+=k8[0];
@ -435,19 +439,19 @@ uint32_t hashlittle( const void *key, size_t length, uint32_t initval)
} }
/*------------------------------- last block: affect all 32 bits of (c) */ /*------------------------------- last block: affect all 32 bits of (c) */
switch(length) /* all the case statements fall through */ switch(length)
{ {
case 12: c+=((uint32_t)k[11])<<24; case 12: c+=((uint32_t)k[11])<<24; // fallthrough
case 11: c+=((uint32_t)k[10])<<16; case 11: c+=((uint32_t)k[10])<<16; // fallthrough
case 10: c+=((uint32_t)k[9])<<8; case 10: c+=((uint32_t)k[9])<<8; // fallthrough
case 9 : c+=k[8]; case 9 : c+=k[8]; // fallthrough
case 8 : b+=((uint32_t)k[7])<<24; case 8 : b+=((uint32_t)k[7])<<24; // fallthrough
case 7 : b+=((uint32_t)k[6])<<16; case 7 : b+=((uint32_t)k[6])<<16; // fallthrough
case 6 : b+=((uint32_t)k[5])<<8; case 6 : b+=((uint32_t)k[5])<<8; // fallthrough
case 5 : b+=k[4]; case 5 : b+=k[4]; // fallthrough
case 4 : a+=((uint32_t)k[3])<<24; case 4 : a+=((uint32_t)k[3])<<24; // fallthrough
case 3 : a+=((uint32_t)k[2])<<16; case 3 : a+=((uint32_t)k[2])<<16; // fallthrough
case 2 : a+=((uint32_t)k[1])<<8; case 2 : a+=((uint32_t)k[1])<<8; // fallthrough
case 1 : a+=k[0]; case 1 : a+=k[0];
break; break;
case 0 : return c; case 0 : return c;
@ -579,28 +583,28 @@ uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */
a += k[0]; a += k[0];
break; break;
case 11: case 11:
c += ((uint32_t)k8[10]) << 16; /* fall through */ c += ((uint32_t)k8[10]) << 16; // fallthrough
case 10: case 10:
c += ((uint32_t)k8[9]) << 8; /* fall through */ c += ((uint32_t)k8[9]) << 8; // fallthrough
case 9: case 9:
c += k8[8]; /* fall through */ c += k8[8]; // fallthrough
case 8: case 8:
b += k[1]; b += k[1];
a += k[0]; a += k[0];
break; break;
case 7: case 7:
b += ((uint32_t)k8[6]) << 16; /* fall through */ b += ((uint32_t)k8[6]) << 16; // fallthrough
case 6: case 6:
b += ((uint32_t)k8[5]) << 8; /* fall through */ b += ((uint32_t)k8[5]) << 8; // fallthrough
case 5: case 5:
b += k8[4]; /* fall through */ b += k8[4]; // fallthrough
case 4: case 4:
a += k[0]; a += k[0];
break; break;
case 3: case 3:
a += ((uint32_t)k8[2]) << 16; /* fall through */ a += ((uint32_t)k8[2]) << 16; // fallthrough
case 2: case 2:
a += ((uint32_t)k8[1]) << 8; /* fall through */ a += ((uint32_t)k8[1]) << 8; // fallthrough
case 1: case 1:
a += k8[0]; a += k8[0];
break; break;
@ -637,31 +641,31 @@ uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */
a += k[0] + (((uint32_t)k[1]) << 16); a += k[0] + (((uint32_t)k[1]) << 16);
break; break;
case 11: case 11:
c += ((uint32_t)k8[10]) << 16; /* fall through */ c += ((uint32_t)k8[10]) << 16; // fallthrough
case 10: case 10:
c += k[4]; c += k[4];
b += k[2] + (((uint32_t)k[3]) << 16); b += k[2] + (((uint32_t)k[3]) << 16);
a += k[0] + (((uint32_t)k[1]) << 16); a += k[0] + (((uint32_t)k[1]) << 16);
break; break;
case 9: case 9:
c += k8[8]; /* fall through */ c += k8[8]; // fallthrough
case 8: case 8:
b += k[2] + (((uint32_t)k[3]) << 16); b += k[2] + (((uint32_t)k[3]) << 16);
a += k[0] + (((uint32_t)k[1]) << 16); a += k[0] + (((uint32_t)k[1]) << 16);
break; break;
case 7: case 7:
b += ((uint32_t)k8[6]) << 16; /* fall through */ b += ((uint32_t)k8[6]) << 16; // fallthrough
case 6: case 6:
b += k[2]; b += k[2];
a += k[0] + (((uint32_t)k[1]) << 16); a += k[0] + (((uint32_t)k[1]) << 16);
break; break;
case 5: case 5:
b += k8[4]; /* fall through */ b += k8[4]; // fallthrough
case 4: case 4:
a += k[0] + (((uint32_t)k[1]) << 16); a += k[0] + (((uint32_t)k[1]) << 16);
break; break;
case 3: case 3:
a += ((uint32_t)k8[2]) << 16; /* fall through */ a += ((uint32_t)k8[2]) << 16; // fallthrough
case 2: case 2:
a += k[0]; a += k[0];
break; break;
@ -699,30 +703,29 @@ uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */
/*-------------------------------- last block: affect all 32 bits of /*-------------------------------- last block: affect all 32 bits of
* (c) */ * (c) */
switch (length) /* all the case statements fall through */ switch (length) {
{
case 12: case 12:
c += ((uint32_t)k[11]) << 24; c += ((uint32_t)k[11]) << 24; // fallthrough
case 11: case 11:
c += ((uint32_t)k[10]) << 16; c += ((uint32_t)k[10]) << 16; // fallthrough
case 10: case 10:
c += ((uint32_t)k[9]) << 8; c += ((uint32_t)k[9]) << 8; // fallthrough
case 9: case 9:
c += k[8]; c += k[8]; // fallthrough
case 8: case 8:
b += ((uint32_t)k[7]) << 24; b += ((uint32_t)k[7]) << 24; // fallthrough
case 7: case 7:
b += ((uint32_t)k[6]) << 16; b += ((uint32_t)k[6]) << 16; // fallthrough
case 6: case 6:
b += ((uint32_t)k[5]) << 8; b += ((uint32_t)k[5]) << 8; // fallthrough
case 5: case 5:
b += k[4]; b += k[4]; // fallthrough
case 4: case 4:
a += ((uint32_t)k[3]) << 24; a += ((uint32_t)k[3]) << 24; // fallthrough
case 3: case 3:
a += ((uint32_t)k[2]) << 16; a += ((uint32_t)k[2]) << 16; // fallthrough
case 2: case 2:
a += ((uint32_t)k[1]) << 8; a += ((uint32_t)k[1]) << 8; // fallthrough
case 1: case 1:
a += k[0]; a += k[0];
break; break;
@ -801,19 +804,19 @@ uint32_t hashbig( const void *key, size_t length, uint32_t initval)
#else /* make valgrind happy */ #else /* make valgrind happy */
k8 = (const uint8_t *)k; k8 = (const uint8_t *)k;
switch(length) /* all the case statements fall through */ switch(length)
{ {
case 12: c+=k[2]; b+=k[1]; a+=k[0]; break; case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
case 11: c+=((uint32_t)k8[10])<<8; /* fall through */ case 11: c+=((uint32_t)k8[10])<<8; // fallthrough
case 10: c+=((uint32_t)k8[9])<<16; /* fall through */ case 10: c+=((uint32_t)k8[9])<<16; // fallthrough
case 9 : c+=((uint32_t)k8[8])<<24; /* fall through */ case 9 : c+=((uint32_t)k8[8])<<24; // fallthrough
case 8 : b+=k[1]; a+=k[0]; break; case 8 : b+=k[1]; a+=k[0]; break;
case 7 : b+=((uint32_t)k8[6])<<8; /* fall through */ case 7 : b+=((uint32_t)k8[6])<<8; // fallthrough
case 6 : b+=((uint32_t)k8[5])<<16; /* fall through */ case 6 : b+=((uint32_t)k8[5])<<16; // fallthrough
case 5 : b+=((uint32_t)k8[4])<<24; /* fall through */ case 5 : b+=((uint32_t)k8[4])<<24; // fallthrough
case 4 : a+=k[0]; break; case 4 : a+=k[0]; break;
case 3 : a+=((uint32_t)k8[2])<<8; /* fall through */ case 3 : a+=((uint32_t)k8[2])<<8; // fallthrough
case 2 : a+=((uint32_t)k8[1])<<16; /* fall through */ case 2 : a+=((uint32_t)k8[1])<<16; // fallthrough
case 1 : a+=((uint32_t)k8[0])<<24; break; case 1 : a+=((uint32_t)k8[0])<<24; break;
case 0 : return c; case 0 : return c;
} }
@ -844,19 +847,19 @@ uint32_t hashbig( const void *key, size_t length, uint32_t initval)
} }
/*------------------------------- last block: affect all 32 bits of (c) */ /*------------------------------- last block: affect all 32 bits of (c) */
switch(length) /* all the case statements fall through */ switch(length)
{ {
case 12: c+=k[11]; case 12: c+=k[11]; // fallthrough
case 11: c+=((uint32_t)k[10])<<8; case 11: c+=((uint32_t)k[10])<<8; // fallthrough
case 10: c+=((uint32_t)k[9])<<16; case 10: c+=((uint32_t)k[9])<<16; // fallthrough
case 9 : c+=((uint32_t)k[8])<<24; case 9 : c+=((uint32_t)k[8])<<24; // fallthrough
case 8 : b+=k[7]; case 8 : b+=k[7]; // fallthrough
case 7 : b+=((uint32_t)k[6])<<8; case 7 : b+=((uint32_t)k[6])<<8; // fallthrough
case 6 : b+=((uint32_t)k[5])<<16; case 6 : b+=((uint32_t)k[5])<<16; // fallthrough
case 5 : b+=((uint32_t)k[4])<<24; case 5 : b+=((uint32_t)k[4])<<24; // fallthrough
case 4 : a+=k[3]; case 4 : a+=k[3]; // fallthrough
case 3 : a+=((uint32_t)k[2])<<8; case 3 : a+=((uint32_t)k[2])<<8; // fallthrough
case 2 : a+=((uint32_t)k[1])<<16; case 2 : a+=((uint32_t)k[1])<<16; // fallthrough
case 1 : a+=((uint32_t)k[0])<<24; case 1 : a+=((uint32_t)k[0])<<24;
break; break;
case 0 : return c; case 0 : return c;

View File

@ -111,22 +111,26 @@ size_t u8_toucs(uint32_t *dest, size_t sz, const char *src, size_t srcsz)
break; break;
ch = 0; ch = 0;
switch (nb) { switch (nb) {
/* these fall through deliberately */
case 5: case 5:
ch += (unsigned char)*src++; ch += (unsigned char)*src++;
ch <<= 6; ch <<= 6;
// fallthrough
case 4: case 4:
ch += (unsigned char)*src++; ch += (unsigned char)*src++;
ch <<= 6; ch <<= 6;
// fallthrough
case 3: case 3:
ch += (unsigned char)*src++; ch += (unsigned char)*src++;
ch <<= 6; ch <<= 6;
// fallthrough
case 2: case 2:
ch += (unsigned char)*src++; ch += (unsigned char)*src++;
ch <<= 6; ch <<= 6;
// fallthrough
case 1: case 1:
ch += (unsigned char)*src++; ch += (unsigned char)*src++;
ch <<= 6; ch <<= 6;
// fallthrough
case 0: case 0:
ch += (unsigned char)*src++; ch += (unsigned char)*src++;
} }
@ -278,22 +282,26 @@ size_t u8_strwidth(const char *s)
nb = trailingBytesForUTF8[(unsigned char)sc]; nb = trailingBytesForUTF8[(unsigned char)sc];
ch = 0; ch = 0;
switch (nb) { switch (nb) {
/* these fall through deliberately */
case 5: case 5:
ch += (unsigned char)*s++; ch += (unsigned char)*s++;
ch <<= 6; ch <<= 6;
// fallthrough
case 4: case 4:
ch += (unsigned char)*s++; ch += (unsigned char)*s++;
ch <<= 6; ch <<= 6;
// fallthrough
case 3: case 3:
ch += (unsigned char)*s++; ch += (unsigned char)*s++;
ch <<= 6; ch <<= 6;
// fallthrough
case 2: case 2:
ch += (unsigned char)*s++; ch += (unsigned char)*s++;
ch <<= 6; ch <<= 6;
// fallthrough
case 1: case 1:
ch += (unsigned char)*s++; ch += (unsigned char)*s++;
ch <<= 6; ch <<= 6;
// fallthrough
case 0: case 0:
ch += (unsigned char)*s++; ch += (unsigned char)*s++;
} }