3333
3434#define len_decode (target , ld , pos_state , seq ) \
3535do { \
36+ [[fallthrough]]; \
3637case seq ## _CHOICE: \
3738 rc_if_0(ld.choice, seq ## _CHOICE) { \
3839 rc_update_0(ld.choice); \
@@ -41,6 +42,7 @@ case seq ## _CHOICE: \
4142 target = MATCH_LEN_MIN; \
4243 } else { \
4344 rc_update_1(ld.choice); \
45+ [[fallthrough]]; \
4446case seq ## _CHOICE2: \
4547 rc_if_0(ld.choice2, seq ## _CHOICE2) { \
4648 rc_update_0(ld.choice2); \
@@ -56,6 +58,7 @@ case seq ## _CHOICE2: \
5658 } \
5759 } \
5860 symbol = 1; \
61+ [[fallthrough]]; \
5962case seq ## _BITTREE: \
6063 do { \
6164 rc_bit(probs[symbol], , , seq ## _BITTREE); \
@@ -346,6 +349,7 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
346349 // since we already calculated it when setting up the local
347350 // variables.
348351 pos_state = dict .pos & pos_mask ;
352+ [[fallthrough ]];
349353
350354 case SEQ_NORMALIZE :
351355 case SEQ_IS_MATCH :
@@ -483,6 +487,7 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
483487 // output history.
484488
485489 rc_update_1 (coder -> is_match [state ][pos_state ]);
490+ [[fallthrough ]];
486491
487492 case SEQ_IS_REP :
488493 rc_if_0 (coder -> is_rep [state ], SEQ_IS_REP ) {
@@ -687,6 +692,7 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
687692 ret = LZMA_DATA_ERROR ;
688693 goto out ;
689694 }
695+ [[fallthrough ]];
690696
691697 case SEQ_IS_REP0 :
692698 rc_if_0 (coder -> is_rep0 [state ], SEQ_IS_REP0 ) {
@@ -718,6 +724,7 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
718724
719725 } else {
720726 rc_update_1 (coder -> is_rep0 [state ]);
727+ [[fallthrough ]];
721728
722729 case SEQ_IS_REP1 :
723730 // The distance is rep1, rep2 or rep3. Once
@@ -733,6 +740,7 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
733740
734741 } else {
735742 rc_update_1 (coder -> is_rep1 [state ]);
743+ [[fallthrough ]];
736744 case SEQ_IS_REP2 :
737745 rc_if_0 (coder -> is_rep2 [state ],
738746 SEQ_IS_REP2 ) {
@@ -772,6 +780,7 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
772780 // to trigger the algorithm to set len outside this range.
773781 assert (len >= MATCH_LEN_MIN );
774782 assert (len <= MATCH_LEN_MAX );
783+ [[fallthrough ]];
775784
776785 case SEQ_COPY :
777786 // Repeat len bytes from distance of rep0.
0 commit comments