summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2021-10-10 06:42:58 -0400
committerAndrew Cady <d@jerkface.net>2021-10-10 06:42:58 -0400
commite247b29913de26abef93de2133bf920bbfcd04f1 (patch)
tree58ab06da2e2cfd5deca5ead782ecdb3e31bfc00e
parent8b9302b36494393c942aea268b4e22e530ffe6e6 (diff)
try to fix the fallthrough warning
-rw-r--r--uthash.h29
1 files changed, 19 insertions, 10 deletions
diff --git a/uthash.h b/uthash.h
index d6b54e9..02f6e0a 100644
--- a/uthash.h
+++ b/uthash.h
@@ -423,6 +423,15 @@ do {
423 c -= a; c -= b; c ^= ( b >> 15 ); \ 423 c -= a; c -= b; c ^= ( b >> 15 ); \
424} while (0) 424} while (0)
425 425
426#if defined __has_cpp_attribute
427 #if __has_cpp_attribute(fallthrough)
428 #define fallthrough ([[fallthrough]];)
429 #endif
430#endif
431#ifndef fallthrough
432#define fallthrough /* FALL-THRU */
433#endif
434
426#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \ 435#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \
427do { \ 436do { \
428 unsigned _hj_i,_hj_j,_hj_k; \ 437 unsigned _hj_i,_hj_j,_hj_k; \
@@ -449,25 +458,25 @@ do {
449 hashv += keylen; \ 458 hashv += keylen; \
450 switch ( _hj_k ) { \ 459 switch ( _hj_k ) { \
451 case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \ 460 case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \
452 [[fallthrough]]; \ 461 fallthrough \
453 case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \ 462 case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \
454 [[fallthrough]]; \ 463 fallthrough \
455 case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \ 464 case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \
456 [[fallthrough]]; \ 465 fallthrough \
457 case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \ 466 case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \
458 [[fallthrough]]; \ 467 fallthrough \
459 case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \ 468 case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \
460 [[fallthrough]]; \ 469 fallthrough \
461 case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \ 470 case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \
462 [[fallthrough]]; \ 471 fallthrough \
463 case 5: _hj_j += _hj_key[4]; \ 472 case 5: _hj_j += _hj_key[4]; \
464 [[fallthrough]]; \ 473 fallthrough \
465 case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \ 474 case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \
466 [[fallthrough]]; \ 475 fallthrough \
467 case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \ 476 case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \
468 [[fallthrough]]; \ 477 fallthrough \
469 case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \ 478 case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \
470 [[fallthrough]]; \ 479 fallthrough \
471 case 1: _hj_i += _hj_key[0]; \ 480 case 1: _hj_i += _hj_key[0]; \
472 } \ 481 } \
473 HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ 482 HASH_JEN_MIX(_hj_i, _hj_j, hashv); \