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
*/
switch (length) /* all the case statements fall through */
{
switch (length) {
case 3:
c += k[2];
// fallthrough
case 2:
b += k[1];
// fallthrough
case 1:
a += k[0];
final(a, b, c);
// fallthrough
case 0: /* case 0: nothing left to add */
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
*/
switch (length) /* all the case statements fall through */
{
switch (length) {
case 3:
c += k[2];
// fallthrough
case 2:
b += k[1];
// fallthrough
case 1:
a += k[0];
final(a, b, c);
// fallthrough
case 0: /* case 0: nothing left to add */
break;
}
@ -348,16 +352,16 @@ uint32_t hashlittle( const void *key, size_t length, uint32_t initval)
switch(length)
{
case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
case 11: c+=((uint32_t)k8[10])<<16; /* fall through */
case 10: c+=((uint32_t)k8[9])<<8; /* fall through */
case 9 : c+=k8[8]; /* fall through */
case 11: c+=((uint32_t)k8[10])<<16; // fallthrough
case 10: c+=((uint32_t)k8[9])<<8; // fallthrough
case 9 : c+=k8[8]; // fallthrough
case 8 : b+=k[1]; a+=k[0]; break;
case 7 : b+=((uint32_t)k8[6])<<16; /* fall through */
case 6 : b+=((uint32_t)k8[5])<<8; /* fall through */
case 5 : b+=k8[4]; /* fall through */
case 7 : b+=((uint32_t)k8[6])<<16; // fallthrough
case 6 : b+=((uint32_t)k8[5])<<8; // fallthrough
case 5 : b+=k8[4]; // fallthrough
case 4 : a+=k[0]; break;
case 3 : a+=((uint32_t)k8[2])<<16; /* fall through */
case 2 : a+=((uint32_t)k8[1])<<8; /* fall through */
case 3 : a+=((uint32_t)k8[2])<<16; // fallthrough
case 2 : a+=((uint32_t)k8[1])<<8; // fallthrough
case 1 : a+=k8[0]; break;
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);
a+=k[0]+(((uint32_t)k[1])<<16);
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];
b+=k[2]+(((uint32_t)k[3])<<16);
a+=k[0]+(((uint32_t)k[1])<<16);
break;
case 9 : c+=k8[8]; /* fall through */
case 9 : c+=k8[8]; // fallthrough
case 8 : b+=k[2]+(((uint32_t)k[3])<<16);
a+=k[0]+(((uint32_t)k[1])<<16);
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];
a+=k[0]+(((uint32_t)k[1])<<16);
break;
case 5 : b+=k8[4]; /* fall through */
case 5 : b+=k8[4]; // fallthrough
case 4 : a+=k[0]+(((uint32_t)k[1])<<16);
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];
break;
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) */
switch(length) /* all the case statements fall through */
switch(length)
{
case 12: c+=((uint32_t)k[11])<<24;
case 11: c+=((uint32_t)k[10])<<16;
case 10: c+=((uint32_t)k[9])<<8;
case 9 : c+=k[8];
case 8 : b+=((uint32_t)k[7])<<24;
case 7 : b+=((uint32_t)k[6])<<16;
case 6 : b+=((uint32_t)k[5])<<8;
case 5 : b+=k[4];
case 4 : a+=((uint32_t)k[3])<<24;
case 3 : a+=((uint32_t)k[2])<<16;
case 2 : a+=((uint32_t)k[1])<<8;
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;
@ -579,28 +583,28 @@ uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */
a += k[0];
break;
case 11:
c += ((uint32_t)k8[10]) << 16; /* fall through */
c += ((uint32_t)k8[10]) << 16; // fallthrough
case 10:
c += ((uint32_t)k8[9]) << 8; /* fall through */
c += ((uint32_t)k8[9]) << 8; // fallthrough
case 9:
c += k8[8]; /* fall through */
c += k8[8]; // fallthrough
case 8:
b += k[1];
a += k[0];
break;
case 7:
b += ((uint32_t)k8[6]) << 16; /* fall through */
b += ((uint32_t)k8[6]) << 16; // fallthrough
case 6:
b += ((uint32_t)k8[5]) << 8; /* fall through */
b += ((uint32_t)k8[5]) << 8; // fallthrough
case 5:
b += k8[4]; /* fall through */
b += k8[4]; // fallthrough
case 4:
a += k[0];
break;
case 3:
a += ((uint32_t)k8[2]) << 16; /* fall through */
a += ((uint32_t)k8[2]) << 16; // fallthrough
case 2:
a += ((uint32_t)k8[1]) << 8; /* fall through */
a += ((uint32_t)k8[1]) << 8; // fallthrough
case 1:
a += k8[0];
break;
@ -637,31 +641,31 @@ uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */
a += k[0] + (((uint32_t)k[1]) << 16);
break;
case 11:
c += ((uint32_t)k8[10]) << 16; /* fall through */
c += ((uint32_t)k8[10]) << 16; // fallthrough
case 10:
c += k[4];
b += k[2] + (((uint32_t)k[3]) << 16);
a += k[0] + (((uint32_t)k[1]) << 16);
break;
case 9:
c += k8[8]; /* fall through */
c += k8[8]; // fallthrough
case 8:
b += k[2] + (((uint32_t)k[3]) << 16);
a += k[0] + (((uint32_t)k[1]) << 16);
break;
case 7:
b += ((uint32_t)k8[6]) << 16; /* fall through */
b += ((uint32_t)k8[6]) << 16; // fallthrough
case 6:
b += k[2];
a += k[0] + (((uint32_t)k[1]) << 16);
break;
case 5:
b += k8[4]; /* fall through */
b += k8[4]; // fallthrough
case 4:
a += k[0] + (((uint32_t)k[1]) << 16);
break;
case 3:
a += ((uint32_t)k8[2]) << 16; /* fall through */
a += ((uint32_t)k8[2]) << 16; // fallthrough
case 2:
a += k[0];
break;
@ -699,30 +703,29 @@ uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */
/*-------------------------------- 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;
c += ((uint32_t)k[11]) << 24; // fallthrough
case 11:
c += ((uint32_t)k[10]) << 16;
c += ((uint32_t)k[10]) << 16; // fallthrough
case 10:
c += ((uint32_t)k[9]) << 8;
c += ((uint32_t)k[9]) << 8; // fallthrough
case 9:
c += k[8];
c += k[8]; // fallthrough
case 8:
b += ((uint32_t)k[7]) << 24;
b += ((uint32_t)k[7]) << 24; // fallthrough
case 7:
b += ((uint32_t)k[6]) << 16;
b += ((uint32_t)k[6]) << 16; // fallthrough
case 6:
b += ((uint32_t)k[5]) << 8;
b += ((uint32_t)k[5]) << 8; // fallthrough
case 5:
b += k[4];
b += k[4]; // fallthrough
case 4:
a += ((uint32_t)k[3]) << 24;
a += ((uint32_t)k[3]) << 24; // fallthrough
case 3:
a += ((uint32_t)k[2]) << 16;
a += ((uint32_t)k[2]) << 16; // fallthrough
case 2:
a += ((uint32_t)k[1]) << 8;
a += ((uint32_t)k[1]) << 8; // fallthrough
case 1:
a += k[0];
break;
@ -801,19 +804,19 @@ uint32_t hashbig( const void *key, size_t length, uint32_t initval)
#else /* make valgrind happy */
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 11: c+=((uint32_t)k8[10])<<8; /* fall through */
case 10: c+=((uint32_t)k8[9])<<16; /* fall through */
case 9 : c+=((uint32_t)k8[8])<<24; /* fall through */
case 11: c+=((uint32_t)k8[10])<<8; // fallthrough
case 10: c+=((uint32_t)k8[9])<<16; // fallthrough
case 9 : c+=((uint32_t)k8[8])<<24; // fallthrough
case 8 : b+=k[1]; a+=k[0]; break;
case 7 : b+=((uint32_t)k8[6])<<8; /* fall through */
case 6 : b+=((uint32_t)k8[5])<<16; /* fall through */
case 5 : b+=((uint32_t)k8[4])<<24; /* fall through */
case 7 : b+=((uint32_t)k8[6])<<8; // fallthrough
case 6 : b+=((uint32_t)k8[5])<<16; // fallthrough
case 5 : b+=((uint32_t)k8[4])<<24; // fallthrough
case 4 : a+=k[0]; break;
case 3 : a+=((uint32_t)k8[2])<<8; /* fall through */
case 2 : a+=((uint32_t)k8[1])<<16; /* fall through */
case 3 : a+=((uint32_t)k8[2])<<8; // fallthrough
case 2 : a+=((uint32_t)k8[1])<<16; // fallthrough
case 1 : a+=((uint32_t)k8[0])<<24; break;
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) */
switch(length) /* all the case statements fall through */
switch(length)
{
case 12: c+=k[11];
case 11: c+=((uint32_t)k[10])<<8;
case 10: c+=((uint32_t)k[9])<<16;
case 9 : c+=((uint32_t)k[8])<<24;
case 8 : b+=k[7];
case 7 : b+=((uint32_t)k[6])<<8;
case 6 : b+=((uint32_t)k[5])<<16;
case 5 : b+=((uint32_t)k[4])<<24;
case 4 : a+=k[3];
case 3 : a+=((uint32_t)k[2])<<8;
case 2 : a+=((uint32_t)k[1])<<16;
case 12: c+=k[11]; // fallthrough
case 11: c+=((uint32_t)k[10])<<8; // fallthrough
case 10: c+=((uint32_t)k[9])<<16; // fallthrough
case 9 : c+=((uint32_t)k[8])<<24; // fallthrough
case 8 : b+=k[7]; // fallthrough
case 7 : b+=((uint32_t)k[6])<<8; // fallthrough
case 6 : b+=((uint32_t)k[5])<<16; // fallthrough
case 5 : b+=((uint32_t)k[4])<<24; // fallthrough
case 4 : a+=k[3]; // fallthrough
case 3 : a+=((uint32_t)k[2])<<8; // fallthrough
case 2 : a+=((uint32_t)k[1])<<16; // fallthrough
case 1 : a+=((uint32_t)k[0])<<24;
break;
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;
ch = 0;
switch (nb) {
/* these fall through deliberately */
case 5:
ch += (unsigned char)*src++;
ch <<= 6;
// fallthrough
case 4:
ch += (unsigned char)*src++;
ch <<= 6;
// fallthrough
case 3:
ch += (unsigned char)*src++;
ch <<= 6;
// fallthrough
case 2:
ch += (unsigned char)*src++;
ch <<= 6;
// fallthrough
case 1:
ch += (unsigned char)*src++;
ch <<= 6;
// fallthrough
case 0:
ch += (unsigned char)*src++;
}
@ -278,22 +282,26 @@ size_t u8_strwidth(const char *s)
nb = trailingBytesForUTF8[(unsigned char)sc];
ch = 0;
switch (nb) {
/* these fall through deliberately */
case 5:
ch += (unsigned char)*s++;
ch <<= 6;
// fallthrough
case 4:
ch += (unsigned char)*s++;
ch <<= 6;
// fallthrough
case 3:
ch += (unsigned char)*s++;
ch <<= 6;
// fallthrough
case 2:
ch += (unsigned char)*s++;
ch <<= 6;
// fallthrough
case 1:
ch += (unsigned char)*s++;
ch <<= 6;
// fallthrough
case 0:
ch += (unsigned char)*s++;
}