.. | .. |
---|
308 | 308 | \ |
---|
309 | 309 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \ |
---|
310 | 310 | R##_e = X##_e; \ |
---|
| 311 | + fallthrough; \ |
---|
311 | 312 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \ |
---|
312 | 313 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \ |
---|
313 | 314 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \ |
---|
.. | .. |
---|
318 | 319 | \ |
---|
319 | 320 | case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \ |
---|
320 | 321 | R##_e = Y##_e; \ |
---|
| 322 | + fallthrough; \ |
---|
321 | 323 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \ |
---|
322 | 324 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \ |
---|
323 | 325 | case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \ |
---|
.. | .. |
---|
415 | 417 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \ |
---|
416 | 418 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \ |
---|
417 | 419 | R##_s = X##_s; \ |
---|
| 420 | + fallthrough; \ |
---|
418 | 421 | \ |
---|
419 | 422 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \ |
---|
420 | 423 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \ |
---|
.. | .. |
---|
428 | 431 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \ |
---|
429 | 432 | case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \ |
---|
430 | 433 | R##_s = Y##_s; \ |
---|
| 434 | + fallthrough; \ |
---|
431 | 435 | \ |
---|
432 | 436 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \ |
---|
433 | 437 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \ |
---|
.. | .. |
---|
493 | 497 | \ |
---|
494 | 498 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \ |
---|
495 | 499 | FP_SET_EXCEPTION(FP_EX_DIVZERO); \ |
---|
| 500 | + fallthrough; \ |
---|
496 | 501 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \ |
---|
497 | 502 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \ |
---|
498 | 503 | R##_c = FP_CLS_INF; \ |
---|
.. | .. |
---|
795 | 800 | ur_ = (unsigned rtype) -r; \ |
---|
796 | 801 | else \ |
---|
797 | 802 | ur_ = (unsigned rtype) r; \ |
---|
798 | | - if (rsize <= _FP_W_TYPE_SIZE) \ |
---|
799 | | - __FP_CLZ(X##_e, ur_); \ |
---|
800 | | - else \ |
---|
801 | | - __FP_CLZ_2(X##_e, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \ |
---|
802 | | - (_FP_W_TYPE)ur_); \ |
---|
| 803 | + (void) (((rsize) <= _FP_W_TYPE_SIZE) \ |
---|
| 804 | + ? ({ __FP_CLZ(X##_e, ur_); }) \ |
---|
| 805 | + : ({ \ |
---|
| 806 | + __FP_CLZ_2(X##_e, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \ |
---|
| 807 | + (_FP_W_TYPE)ur_); \ |
---|
| 808 | + })); \ |
---|
803 | 809 | if (rsize < _FP_W_TYPE_SIZE) \ |
---|
804 | 810 | X##_e -= (_FP_W_TYPE_SIZE - rsize); \ |
---|
805 | 811 | X##_e = rsize - X##_e - 1; \ |
---|