Skip to content

Commit d4ee803

Browse files
author
Mike Pall
committed
Fix GCC 7 -Wimplicit-fallthrough warnings.
1 parent b03a56f commit d4ee803

File tree

10 files changed

+33
-5
lines changed

10 files changed

+33
-5
lines changed

dynasm/dasm_arm.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ void dasm_put(Dst_DECL, int start, ...)
254254
case DASM_IMMV8:
255255
CK((n & 3) == 0, RANGE_I);
256256
n >>= 2;
257+
/* fallthrough */
257258
case DASM_IMML8:
258259
case DASM_IMML12:
259260
CK(n >= 0 ? ((n>>((ins>>5)&31)) == 0) :
@@ -371,6 +372,7 @@ int dasm_encode(Dst_DECL, void *buffer)
371372
break;
372373
case DASM_REL_LG:
373374
CK(n >= 0, UNDEF_LG);
375+
/* fallthrough */
374376
case DASM_REL_PC:
375377
CK(n >= 0, UNDEF_PC);
376378
n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base) - 4;

dynasm/dasm_mips.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ int dasm_encode(Dst_DECL, void *buffer)
350350
break;
351351
case DASM_REL_LG:
352352
CK(n >= 0, UNDEF_LG);
353+
/* fallthrough */
353354
case DASM_REL_PC:
354355
CK(n >= 0, UNDEF_PC);
355356
n = *DASM_POS2PTR(D, n);

dynasm/dasm_ppc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ int dasm_encode(Dst_DECL, void *buffer)
350350
break;
351351
case DASM_REL_LG:
352352
CK(n >= 0, UNDEF_LG);
353+
/* fallthrough */
353354
case DASM_REL_PC:
354355
CK(n >= 0, UNDEF_PC);
355356
n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base);

dynasm/dasm_x86.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,13 @@ void dasm_put(Dst_DECL, int start, ...)
194194
switch (action) {
195195
case DASM_DISP:
196196
if (n == 0) { if ((mrm&7) == 4) mrm = p[-2]; if ((mrm&7) != 5) break; }
197-
case DASM_IMM_DB: if (((n+128)&-256) == 0) goto ob;
197+
/* fallthrough */
198+
case DASM_IMM_DB: if (((n+128)&-256) == 0) goto ob; /* fallthrough */
198199
case DASM_REL_A: /* Assumes ptrdiff_t is int. !x64 */
199200
case DASM_IMM_D: ofs += 4; break;
200201
case DASM_IMM_S: CK(((n+128)&-256) == 0, RANGE_I); goto ob;
201202
case DASM_IMM_B: CK((n&-256) == 0, RANGE_I); ob: ofs++; break;
202-
case DASM_IMM_WB: if (((n+128)&-256) == 0) goto ob;
203+
case DASM_IMM_WB: if (((n+128)&-256) == 0) goto ob; /* fallthrough */
203204
case DASM_IMM_W: CK((n&-65536) == 0, RANGE_I); ofs += 2; break;
204205
case DASM_SPACE: p++; ofs += n; break;
205206
case DASM_SETLABEL: b[pos-2] = -0x40000000; break; /* Neg. label ofs. */
@@ -323,11 +324,14 @@ int dasm_link(Dst_DECL, size_t *szp)
323324
pos += 2;
324325
break;
325326
}
327+
/* fallthrough */
326328
case DASM_SPACE: case DASM_IMM_LG: case DASM_VREG: p++;
329+
/* fallthrough */
327330
case DASM_DISP: case DASM_IMM_S: case DASM_IMM_B: case DASM_IMM_W:
328331
case DASM_IMM_D: case DASM_IMM_WB: case DASM_IMM_DB:
329332
case DASM_SETLABEL: case DASM_REL_A: case DASM_IMM_PC: pos++; break;
330333
case DASM_LABEL_LG: p++;
334+
/* fallthrough */
331335
case DASM_LABEL_PC: b[pos++] += ofs; break; /* Fix label offset. */
332336
case DASM_ALIGN: ofs -= (b[pos++]+ofs)&*p++; break; /* Adjust ofs. */
333337
case DASM_EXTERN: p += 2; break;
@@ -385,16 +389,20 @@ int dasm_encode(Dst_DECL, void *buffer)
385389
if (mrm != 5) { mm[-1] -= 0x80; break; } }
386390
if (((n+128) & -256) != 0) goto wd; else mm[-1] -= 0x40;
387391
}
392+
/* fallthrough */
388393
case DASM_IMM_S: case DASM_IMM_B: wb: dasmb(n); break;
389394
case DASM_IMM_DB: if (((n+128)&-256) == 0) {
390395
db: if (!mark) mark = cp; mark[-2] += 2; mark = NULL; goto wb;
391396
} else mark = NULL;
397+
/* fallthrough */
392398
case DASM_IMM_D: wd: dasmd(n); break;
393399
case DASM_IMM_WB: if (((n+128)&-256) == 0) goto db; else mark = NULL;
400+
/* fallthrough */
394401
case DASM_IMM_W: dasmw(n); break;
395402
case DASM_VREG: { int t = *p++; if (t >= 2) n<<=3; cp[-1] |= n; break; }
396403
case DASM_REL_LG: p++; if (n >= 0) goto rel_pc;
397404
b++; n = (int)(ptrdiff_t)D->globals[-n];
405+
/* fallthrough */
398406
case DASM_REL_A: rel_a:
399407
n -= (unsigned int)(ptrdiff_t)(cp+4); goto wd; /* !x64 */
400408
case DASM_REL_PC: rel_pc: {
@@ -407,6 +415,7 @@ int dasm_encode(Dst_DECL, void *buffer)
407415
}
408416
case DASM_IMM_LG:
409417
p++; if (n < 0) { n = (int)(ptrdiff_t)D->globals[-n]; goto wd; }
418+
/* fallthrough */
410419
case DASM_IMM_PC: {
411420
int *pb = DASM_POS2PTR(D, n);
412421
n = *pb < 0 ? pb[1] : (*pb + (int)(ptrdiff_t)base);
@@ -427,6 +436,7 @@ int dasm_encode(Dst_DECL, void *buffer)
427436
case DASM_EXTERN: n = DASM_EXTERN(Dst, cp, p[1], *p); p += 2; goto wd;
428437
case DASM_MARK: mark = cp; break;
429438
case DASM_ESC: action = *p++;
439+
/* fallthrough */
430440
default: *cp++ = action; break;
431441
case DASM_SECTION: case DASM_STOP: goto stop;
432442
}

src/lj_asm.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1725,6 +1725,7 @@ static void asm_setup_regsp(ASMState *as)
17251725
case IR_SNEW: case IR_XSNEW: case IR_NEWREF:
17261726
if (REGARG_NUMGPR < 3 && as->evenspill < 3)
17271727
as->evenspill = 3; /* lj_str_new and lj_tab_newkey need 3 args. */
1728+
/* fallthrough */
17281729
case IR_TNEW: case IR_TDUP: case IR_CNEW: case IR_CNEWI: case IR_TOSTR:
17291730
ir->prev = REGSP_HINT(RID_RET);
17301731
if (inloop)
@@ -1750,7 +1751,7 @@ static void asm_setup_regsp(ASMState *as)
17501751
#endif
17511752
continue;
17521753
}
1753-
/* fallthrough for integer POW */
1754+
/* fallthrough */ /* for integer POW */
17541755
case IR_DIV: case IR_MOD:
17551756
if (!irt_isnum(ir->t)) {
17561757
ir->prev = REGSP_HINT(RID_RET);

src/lj_cparse.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,28 +590,34 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
590590
k->id = k2.id > k3.id ? k2.id : k3.id;
591591
continue;
592592
}
593+
/* fallthrough */
593594
case 1:
594595
if (cp_opt(cp, CTOK_OROR)) {
595596
cp_expr_sub(cp, &k2, 2); k->i32 = k->u32 || k2.u32; k->id = CTID_INT32;
596597
continue;
597598
}
599+
/* fallthrough */
598600
case 2:
599601
if (cp_opt(cp, CTOK_ANDAND)) {
600602
cp_expr_sub(cp, &k2, 3); k->i32 = k->u32 && k2.u32; k->id = CTID_INT32;
601603
continue;
602604
}
605+
/* fallthrough */
603606
case 3:
604607
if (cp_opt(cp, '|')) {
605608
cp_expr_sub(cp, &k2, 4); k->u32 = k->u32 | k2.u32; goto arith_result;
606609
}
610+
/* fallthrough */
607611
case 4:
608612
if (cp_opt(cp, '^')) {
609613
cp_expr_sub(cp, &k2, 5); k->u32 = k->u32 ^ k2.u32; goto arith_result;
610614
}
615+
/* fallthrough */
611616
case 5:
612617
if (cp_opt(cp, '&')) {
613618
cp_expr_sub(cp, &k2, 6); k->u32 = k->u32 & k2.u32; goto arith_result;
614619
}
620+
/* fallthrough */
615621
case 6:
616622
if (cp_opt(cp, CTOK_EQ)) {
617623
cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 == k2.u32; k->id = CTID_INT32;
@@ -620,6 +626,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
620626
cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 != k2.u32; k->id = CTID_INT32;
621627
continue;
622628
}
629+
/* fallthrough */
623630
case 7:
624631
if (cp_opt(cp, '<')) {
625632
cp_expr_sub(cp, &k2, 8);
@@ -654,6 +661,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
654661
k->id = CTID_INT32;
655662
continue;
656663
}
664+
/* fallthrough */
657665
case 8:
658666
if (cp_opt(cp, CTOK_SHL)) {
659667
cp_expr_sub(cp, &k2, 9); k->u32 = k->u32 << k2.u32;
@@ -666,6 +674,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
666674
k->u32 = k->u32 >> k2.u32;
667675
continue;
668676
}
677+
/* fallthrough */
669678
case 9:
670679
if (cp_opt(cp, '+')) {
671680
cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 + k2.u32;
@@ -675,6 +684,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
675684
} else if (cp_opt(cp, '-')) {
676685
cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 - k2.u32; goto arith_result;
677686
}
687+
/* fallthrough */
678688
case 10:
679689
if (cp_opt(cp, '*')) {
680690
cp_expr_unary(cp, &k2); k->u32 = k->u32 * k2.u32; goto arith_result;

src/lj_err.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode)
153153
if ((frame-1)->u32.lo == LJ_CONT_FFI_CALLBACK)
154154
goto unwind_c;
155155
#endif
156+
/* fallthrough */
156157
case FRAME_VARG: /* Vararg frame. */
157158
frame = frame_prevd(frame);
158159
break;

src/lj_opt_sink.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ static void sink_mark_ins(jit_State *J)
100100
(LJ_32 && ir+1 < irlast && (ir+1)->o == IR_HIOP &&
101101
!sink_checkphi(J, ir, (ir+1)->op2))))
102102
irt_setmark(ir->t); /* Mark ineligible allocation. */
103-
/* fallthrough */
104103
#endif
104+
/* fallthrough */
105105
case IR_USTORE:
106106
irt_setmark(IR(ir->op2)->t); /* Mark stored value. */
107107
break;

src/lj_parse.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2696,7 +2696,8 @@ static int parse_stmt(LexState *ls)
26962696
lj_lex_next(ls);
26972697
parse_goto(ls);
26982698
break;
2699-
} /* else: fallthrough */
2699+
}
2700+
/* fallthrough */
27002701
default:
27012702
parse_call_assign(ls);
27022703
break;

src/luajit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ static int collectargs(char **argv, int *flags)
419419
break;
420420
case 'e':
421421
*flags |= FLAGS_EXEC;
422+
/* fallthrough */
422423
case 'j': /* LuaJIT extension */
423424
case 'l':
424425
*flags |= FLAGS_OPTION;

0 commit comments

Comments
 (0)