aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2018-01-29 13:19:30 +0100
committerMike Pall <mike>2018-01-29 13:19:30 +0100
commit0bf46e1edf94c43795b5e491efe682ab70974ce7 (patch)
tree5e96ce2da5161ebd49fb564fe5aa73805b3391b7
parent74c544d68c07bcd416225598cdf15f88e62fd457 (diff)
parentd4ee80342770d1281e2ce877f8ae8ab1d99e6528 (diff)
downloadluajit-0bf46e1edf94c43795b5e491efe682ab70974ce7.tar.gz
luajit-0bf46e1edf94c43795b5e491efe682ab70974ce7.tar.bz2
luajit-0bf46e1edf94c43795b5e491efe682ab70974ce7.zip
Merge branch 'master' into v2.1
-rw-r--r--dynasm/dasm_arm.h2
-rw-r--r--dynasm/dasm_mips.h1
-rw-r--r--dynasm/dasm_ppc.h1
-rw-r--r--dynasm/dasm_x86.h18
-rw-r--r--src/lj_asm.c7
-rw-r--r--src/lj_cparse.c10
-rw-r--r--src/lj_err.c1
-rw-r--r--src/lj_opt_sink.c2
-rw-r--r--src/lj_parse.c3
-rw-r--r--src/luajit.c1
10 files changed, 39 insertions, 7 deletions
diff --git a/dynasm/dasm_arm.h b/dynasm/dasm_arm.h
index a43f7c66..1d404ccd 100644
--- a/dynasm/dasm_arm.h
+++ b/dynasm/dasm_arm.h
@@ -254,6 +254,7 @@ void dasm_put(Dst_DECL, int start, ...)
254 case DASM_IMMV8: 254 case DASM_IMMV8:
255 CK((n & 3) == 0, RANGE_I); 255 CK((n & 3) == 0, RANGE_I);
256 n >>= 2; 256 n >>= 2;
257 /* fallthrough */
257 case DASM_IMML8: 258 case DASM_IMML8:
258 case DASM_IMML12: 259 case DASM_IMML12:
259 CK(n >= 0 ? ((n>>((ins>>5)&31)) == 0) : 260 CK(n >= 0 ? ((n>>((ins>>5)&31)) == 0) :
@@ -371,6 +372,7 @@ int dasm_encode(Dst_DECL, void *buffer)
371 break; 372 break;
372 case DASM_REL_LG: 373 case DASM_REL_LG:
373 CK(n >= 0, UNDEF_LG); 374 CK(n >= 0, UNDEF_LG);
375 /* fallthrough */
374 case DASM_REL_PC: 376 case DASM_REL_PC:
375 CK(n >= 0, UNDEF_PC); 377 CK(n >= 0, UNDEF_PC);
376 n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base) - 4; 378 n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base) - 4;
diff --git a/dynasm/dasm_mips.h b/dynasm/dasm_mips.h
index 4b49fd8c..71a835b2 100644
--- a/dynasm/dasm_mips.h
+++ b/dynasm/dasm_mips.h
@@ -350,6 +350,7 @@ int dasm_encode(Dst_DECL, void *buffer)
350 break; 350 break;
351 case DASM_REL_LG: 351 case DASM_REL_LG:
352 CK(n >= 0, UNDEF_LG); 352 CK(n >= 0, UNDEF_LG);
353 /* fallthrough */
353 case DASM_REL_PC: 354 case DASM_REL_PC:
354 CK(n >= 0, UNDEF_PC); 355 CK(n >= 0, UNDEF_PC);
355 n = *DASM_POS2PTR(D, n); 356 n = *DASM_POS2PTR(D, n);
diff --git a/dynasm/dasm_ppc.h b/dynasm/dasm_ppc.h
index 3a7ee9b0..83fc030a 100644
--- a/dynasm/dasm_ppc.h
+++ b/dynasm/dasm_ppc.h
@@ -354,6 +354,7 @@ int dasm_encode(Dst_DECL, void *buffer)
354 break; 354 break;
355 case DASM_REL_LG: 355 case DASM_REL_LG:
356 CK(n >= 0, UNDEF_LG); 356 CK(n >= 0, UNDEF_LG);
357 /* fallthrough */
357 case DASM_REL_PC: 358 case DASM_REL_PC:
358 CK(n >= 0, UNDEF_PC); 359 CK(n >= 0, UNDEF_PC);
359 n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base); 360 n = *DASM_POS2PTR(D, n) - (int)((char *)cp - base);
diff --git a/dynasm/dasm_x86.h b/dynasm/dasm_x86.h
index f598da9a..dc14d883 100644
--- a/dynasm/dasm_x86.h
+++ b/dynasm/dasm_x86.h
@@ -194,12 +194,13 @@ void dasm_put(Dst_DECL, int start, ...)
194 switch (action) { 194 switch (action) {
195 case DASM_DISP: 195 case DASM_DISP:
196 if (n == 0) { if (mrm < 0) mrm = p[-2]; if ((mrm&7) != 5) break; } 196 if (n == 0) { if (mrm < 0) 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 */
198 case DASM_REL_A: /* Assumes ptrdiff_t is int. !x64 */ 199 case DASM_REL_A: /* Assumes ptrdiff_t is int. !x64 */
199 case DASM_IMM_D: ofs += 4; break; 200 case DASM_IMM_D: ofs += 4; break;
200 case DASM_IMM_S: CK(((n+128)&-256) == 0, RANGE_I); goto ob; 201 case DASM_IMM_S: CK(((n+128)&-256) == 0, RANGE_I); goto ob;
201 case DASM_IMM_B: CK((n&-256) == 0, RANGE_I); ob: ofs++; break; 202 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 */
203 case DASM_IMM_W: CK((n&-65536) == 0, RANGE_I); ofs += 2; break; 204 case DASM_IMM_W: CK((n&-65536) == 0, RANGE_I); ofs += 2; break;
204 case DASM_SPACE: p++; ofs += n; break; 205 case DASM_SPACE: p++; ofs += n; break;
205 case DASM_SETLABEL: b[pos-2] = -0x40000000; break; /* Neg. label ofs. */ 206 case DASM_SETLABEL: b[pos-2] = -0x40000000; break; /* Neg. label ofs. */
@@ -207,8 +208,8 @@ void dasm_put(Dst_DECL, int start, ...)
207 if (*p < 0x40 && p[1] == DASM_DISP) mrm = n; 208 if (*p < 0x40 && p[1] == DASM_DISP) mrm = n;
208 if (*p < 0x20 && (n&7) == 4) ofs++; 209 if (*p < 0x20 && (n&7) == 4) ofs++;
209 switch ((*p++ >> 3) & 3) { 210 switch ((*p++ >> 3) & 3) {
210 case 3: n |= b[pos-3]; 211 case 3: n |= b[pos-3]; /* fallthrough */
211 case 2: n |= b[pos-2]; 212 case 2: n |= b[pos-2]; /* fallthrough */
212 case 1: if (n <= 7) { b[pos-1] |= 0x10; ofs--; } 213 case 1: if (n <= 7) { b[pos-1] |= 0x10; ofs--; }
213 } 214 }
214 continue; 215 continue;
@@ -329,11 +330,14 @@ int dasm_link(Dst_DECL, size_t *szp)
329 pos += 2; 330 pos += 2;
330 break; 331 break;
331 } 332 }
333 /* fallthrough */
332 case DASM_SPACE: case DASM_IMM_LG: case DASM_VREG: p++; 334 case DASM_SPACE: case DASM_IMM_LG: case DASM_VREG: p++;
335 /* fallthrough */
333 case DASM_DISP: case DASM_IMM_S: case DASM_IMM_B: case DASM_IMM_W: 336 case DASM_DISP: case DASM_IMM_S: case DASM_IMM_B: case DASM_IMM_W:
334 case DASM_IMM_D: case DASM_IMM_WB: case DASM_IMM_DB: 337 case DASM_IMM_D: case DASM_IMM_WB: case DASM_IMM_DB:
335 case DASM_SETLABEL: case DASM_REL_A: case DASM_IMM_PC: pos++; break; 338 case DASM_SETLABEL: case DASM_REL_A: case DASM_IMM_PC: pos++; break;
336 case DASM_LABEL_LG: p++; 339 case DASM_LABEL_LG: p++;
340 /* fallthrough */
337 case DASM_LABEL_PC: b[pos++] += ofs; break; /* Fix label offset. */ 341 case DASM_LABEL_PC: b[pos++] += ofs; break; /* Fix label offset. */
338 case DASM_ALIGN: ofs -= (b[pos++]+ofs)&*p++; break; /* Adjust ofs. */ 342 case DASM_ALIGN: ofs -= (b[pos++]+ofs)&*p++; break; /* Adjust ofs. */
339 case DASM_EXTERN: p += 2; break; 343 case DASM_EXTERN: p += 2; break;
@@ -391,12 +395,15 @@ int dasm_encode(Dst_DECL, void *buffer)
391 if (mrm != 5) { mm[-1] -= 0x80; break; } } 395 if (mrm != 5) { mm[-1] -= 0x80; break; } }
392 if (((n+128) & -256) != 0) goto wd; else mm[-1] -= 0x40; 396 if (((n+128) & -256) != 0) goto wd; else mm[-1] -= 0x40;
393 } 397 }
398 /* fallthrough */
394 case DASM_IMM_S: case DASM_IMM_B: wb: dasmb(n); break; 399 case DASM_IMM_S: case DASM_IMM_B: wb: dasmb(n); break;
395 case DASM_IMM_DB: if (((n+128)&-256) == 0) { 400 case DASM_IMM_DB: if (((n+128)&-256) == 0) {
396 db: if (!mark) mark = cp; mark[-2] += 2; mark = NULL; goto wb; 401 db: if (!mark) mark = cp; mark[-2] += 2; mark = NULL; goto wb;
397 } else mark = NULL; 402 } else mark = NULL;
403 /* fallthrough */
398 case DASM_IMM_D: wd: dasmd(n); break; 404 case DASM_IMM_D: wd: dasmd(n); break;
399 case DASM_IMM_WB: if (((n+128)&-256) == 0) goto db; else mark = NULL; 405 case DASM_IMM_WB: if (((n+128)&-256) == 0) goto db; else mark = NULL;
406 /* fallthrough */
400 case DASM_IMM_W: dasmw(n); break; 407 case DASM_IMM_W: dasmw(n); break;
401 case DASM_VREG: { 408 case DASM_VREG: {
402 int t = *p++; 409 int t = *p++;
@@ -421,6 +428,7 @@ int dasm_encode(Dst_DECL, void *buffer)
421 } 428 }
422 case DASM_REL_LG: p++; if (n >= 0) goto rel_pc; 429 case DASM_REL_LG: p++; if (n >= 0) goto rel_pc;
423 b++; n = (int)(ptrdiff_t)D->globals[-n]; 430 b++; n = (int)(ptrdiff_t)D->globals[-n];
431 /* fallthrough */
424 case DASM_REL_A: rel_a: 432 case DASM_REL_A: rel_a:
425 n -= (unsigned int)(ptrdiff_t)(cp+4); goto wd; /* !x64 */ 433 n -= (unsigned int)(ptrdiff_t)(cp+4); goto wd; /* !x64 */
426 case DASM_REL_PC: rel_pc: { 434 case DASM_REL_PC: rel_pc: {
@@ -433,6 +441,7 @@ int dasm_encode(Dst_DECL, void *buffer)
433 } 441 }
434 case DASM_IMM_LG: 442 case DASM_IMM_LG:
435 p++; if (n < 0) { n = (int)(ptrdiff_t)D->globals[-n]; goto wd; } 443 p++; if (n < 0) { n = (int)(ptrdiff_t)D->globals[-n]; goto wd; }
444 /* fallthrough */
436 case DASM_IMM_PC: { 445 case DASM_IMM_PC: {
437 int *pb = DASM_POS2PTR(D, n); 446 int *pb = DASM_POS2PTR(D, n);
438 n = *pb < 0 ? pb[1] : (*pb + (int)(ptrdiff_t)base); 447 n = *pb < 0 ? pb[1] : (*pb + (int)(ptrdiff_t)base);
@@ -453,6 +462,7 @@ int dasm_encode(Dst_DECL, void *buffer)
453 case DASM_EXTERN: n = DASM_EXTERN(Dst, cp, p[1], *p); p += 2; goto wd; 462 case DASM_EXTERN: n = DASM_EXTERN(Dst, cp, p[1], *p); p += 2; goto wd;
454 case DASM_MARK: mark = cp; break; 463 case DASM_MARK: mark = cp; break;
455 case DASM_ESC: action = *p++; 464 case DASM_ESC: action = *p++;
465 /* fallthrough */
456 default: *cp++ = action; break; 466 default: *cp++ = action; break;
457 case DASM_SECTION: case DASM_STOP: goto stop; 467 case DASM_SECTION: case DASM_STOP: goto stop;
458 } 468 }
diff --git a/src/lj_asm.c b/src/lj_asm.c
index 5f83779e..992dcf59 100644
--- a/src/lj_asm.c
+++ b/src/lj_asm.c
@@ -2142,9 +2142,12 @@ static void asm_setup_regsp(ASMState *as)
2142 if (ir->op2 != REF_NIL && as->evenspill < 4) 2142 if (ir->op2 != REF_NIL && as->evenspill < 4)
2143 as->evenspill = 4; /* lj_cdata_newv needs 4 args. */ 2143 as->evenspill = 4; /* lj_cdata_newv needs 4 args. */
2144 } 2144 }
2145 /* fallthrough */
2145#else 2146#else
2147 /* fallthrough */
2146 case IR_CNEW: 2148 case IR_CNEW:
2147#endif 2149#endif
2150 /* fallthrough */
2148 case IR_TNEW: case IR_TDUP: case IR_CNEWI: case IR_TOSTR: 2151 case IR_TNEW: case IR_TDUP: case IR_CNEWI: case IR_TOSTR:
2149 case IR_BUFSTR: 2152 case IR_BUFSTR:
2150 ir->prev = REGSP_HINT(RID_RET); 2153 ir->prev = REGSP_HINT(RID_RET);
@@ -2165,6 +2168,7 @@ static void asm_setup_regsp(ASMState *as)
2165 case IR_LDEXP: 2168 case IR_LDEXP:
2166#endif 2169#endif
2167#endif 2170#endif
2171 /* fallthrough */
2168 case IR_POW: 2172 case IR_POW:
2169 if (!LJ_SOFTFP && irt_isnum(ir->t)) { 2173 if (!LJ_SOFTFP && irt_isnum(ir->t)) {
2170 if (inloop) 2174 if (inloop)
@@ -2176,7 +2180,7 @@ static void asm_setup_regsp(ASMState *as)
2176 continue; 2180 continue;
2177#endif 2181#endif
2178 } 2182 }
2179 /* fallthrough for integer POW */ 2183 /* fallthrough */ /* for integer POW */
2180 case IR_DIV: case IR_MOD: 2184 case IR_DIV: case IR_MOD:
2181 if (!irt_isnum(ir->t)) { 2185 if (!irt_isnum(ir->t)) {
2182 ir->prev = REGSP_HINT(RID_RET); 2186 ir->prev = REGSP_HINT(RID_RET);
@@ -2213,6 +2217,7 @@ static void asm_setup_regsp(ASMState *as)
2213 case IR_BSHL: case IR_BSHR: case IR_BSAR: 2217 case IR_BSHL: case IR_BSHR: case IR_BSAR:
2214 if ((as->flags & JIT_F_BMI2)) /* Except if BMI2 is available. */ 2218 if ((as->flags & JIT_F_BMI2)) /* Except if BMI2 is available. */
2215 break; 2219 break;
2220 /* fallthrough */
2216 case IR_BROL: case IR_BROR: 2221 case IR_BROL: case IR_BROR:
2217 if (!irref_isk(ir->op2) && !ra_hashint(IR(ir->op2)->r)) { 2222 if (!irref_isk(ir->op2) && !ra_hashint(IR(ir->op2)->r)) {
2218 IR(ir->op2)->r = REGSP_HINT(RID_ECX); 2223 IR(ir->op2)->r = REGSP_HINT(RID_ECX);
diff --git a/src/lj_cparse.c b/src/lj_cparse.c
index 83cfd112..19f632ff 100644
--- a/src/lj_cparse.c
+++ b/src/lj_cparse.c
@@ -576,28 +576,34 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
576 k->id = k2.id > k3.id ? k2.id : k3.id; 576 k->id = k2.id > k3.id ? k2.id : k3.id;
577 continue; 577 continue;
578 } 578 }
579 /* fallthrough */
579 case 1: 580 case 1:
580 if (cp_opt(cp, CTOK_OROR)) { 581 if (cp_opt(cp, CTOK_OROR)) {
581 cp_expr_sub(cp, &k2, 2); k->i32 = k->u32 || k2.u32; k->id = CTID_INT32; 582 cp_expr_sub(cp, &k2, 2); k->i32 = k->u32 || k2.u32; k->id = CTID_INT32;
582 continue; 583 continue;
583 } 584 }
585 /* fallthrough */
584 case 2: 586 case 2:
585 if (cp_opt(cp, CTOK_ANDAND)) { 587 if (cp_opt(cp, CTOK_ANDAND)) {
586 cp_expr_sub(cp, &k2, 3); k->i32 = k->u32 && k2.u32; k->id = CTID_INT32; 588 cp_expr_sub(cp, &k2, 3); k->i32 = k->u32 && k2.u32; k->id = CTID_INT32;
587 continue; 589 continue;
588 } 590 }
591 /* fallthrough */
589 case 3: 592 case 3:
590 if (cp_opt(cp, '|')) { 593 if (cp_opt(cp, '|')) {
591 cp_expr_sub(cp, &k2, 4); k->u32 = k->u32 | k2.u32; goto arith_result; 594 cp_expr_sub(cp, &k2, 4); k->u32 = k->u32 | k2.u32; goto arith_result;
592 } 595 }
596 /* fallthrough */
593 case 4: 597 case 4:
594 if (cp_opt(cp, '^')) { 598 if (cp_opt(cp, '^')) {
595 cp_expr_sub(cp, &k2, 5); k->u32 = k->u32 ^ k2.u32; goto arith_result; 599 cp_expr_sub(cp, &k2, 5); k->u32 = k->u32 ^ k2.u32; goto arith_result;
596 } 600 }
601 /* fallthrough */
597 case 5: 602 case 5:
598 if (cp_opt(cp, '&')) { 603 if (cp_opt(cp, '&')) {
599 cp_expr_sub(cp, &k2, 6); k->u32 = k->u32 & k2.u32; goto arith_result; 604 cp_expr_sub(cp, &k2, 6); k->u32 = k->u32 & k2.u32; goto arith_result;
600 } 605 }
606 /* fallthrough */
601 case 6: 607 case 6:
602 if (cp_opt(cp, CTOK_EQ)) { 608 if (cp_opt(cp, CTOK_EQ)) {
603 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 == k2.u32; k->id = CTID_INT32; 609 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 == k2.u32; k->id = CTID_INT32;
@@ -606,6 +612,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
606 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 != k2.u32; k->id = CTID_INT32; 612 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 != k2.u32; k->id = CTID_INT32;
607 continue; 613 continue;
608 } 614 }
615 /* fallthrough */
609 case 7: 616 case 7:
610 if (cp_opt(cp, '<')) { 617 if (cp_opt(cp, '<')) {
611 cp_expr_sub(cp, &k2, 8); 618 cp_expr_sub(cp, &k2, 8);
@@ -640,6 +647,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
640 k->id = CTID_INT32; 647 k->id = CTID_INT32;
641 continue; 648 continue;
642 } 649 }
650 /* fallthrough */
643 case 8: 651 case 8:
644 if (cp_opt(cp, CTOK_SHL)) { 652 if (cp_opt(cp, CTOK_SHL)) {
645 cp_expr_sub(cp, &k2, 9); k->u32 = k->u32 << k2.u32; 653 cp_expr_sub(cp, &k2, 9); k->u32 = k->u32 << k2.u32;
@@ -652,6 +660,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
652 k->u32 = k->u32 >> k2.u32; 660 k->u32 = k->u32 >> k2.u32;
653 continue; 661 continue;
654 } 662 }
663 /* fallthrough */
655 case 9: 664 case 9:
656 if (cp_opt(cp, '+')) { 665 if (cp_opt(cp, '+')) {
657 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 + k2.u32; 666 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 + k2.u32;
@@ -661,6 +670,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
661 } else if (cp_opt(cp, '-')) { 670 } else if (cp_opt(cp, '-')) {
662 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 - k2.u32; goto arith_result; 671 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 - k2.u32; goto arith_result;
663 } 672 }
673 /* fallthrough */
664 case 10: 674 case 10:
665 if (cp_opt(cp, '*')) { 675 if (cp_opt(cp, '*')) {
666 cp_expr_unary(cp, &k2); k->u32 = k->u32 * k2.u32; goto arith_result; 676 cp_expr_unary(cp, &k2); k->u32 = k->u32 * k2.u32; goto arith_result;
diff --git a/src/lj_err.c b/src/lj_err.c
index b6be357e..abf176e5 100644
--- a/src/lj_err.c
+++ b/src/lj_err.c
@@ -150,6 +150,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode)
150 case FRAME_CONT: /* Continuation frame. */ 150 case FRAME_CONT: /* Continuation frame. */
151 if (frame_iscont_fficb(frame)) 151 if (frame_iscont_fficb(frame))
152 goto unwind_c; 152 goto unwind_c;
153 /* fallthrough */
153 case FRAME_VARG: /* Vararg frame. */ 154 case FRAME_VARG: /* Vararg frame. */
154 frame = frame_prevd(frame); 155 frame = frame_prevd(frame);
155 break; 156 break;
diff --git a/src/lj_opt_sink.c b/src/lj_opt_sink.c
index a16d112f..c16363e7 100644
--- a/src/lj_opt_sink.c
+++ b/src/lj_opt_sink.c
@@ -100,8 +100,8 @@ static void sink_mark_ins(jit_State *J)
100 (LJ_32 && ir+1 < irlast && (ir+1)->o == IR_HIOP && 100 (LJ_32 && ir+1 < irlast && (ir+1)->o == IR_HIOP &&
101 !sink_checkphi(J, ir, (ir+1)->op2)))) 101 !sink_checkphi(J, ir, (ir+1)->op2))))
102 irt_setmark(ir->t); /* Mark ineligible allocation. */ 102 irt_setmark(ir->t); /* Mark ineligible allocation. */
103 /* fallthrough */
104#endif 103#endif
104 /* fallthrough */
105 case IR_USTORE: 105 case IR_USTORE:
106 irt_setmark(IR(ir->op2)->t); /* Mark stored value. */ 106 irt_setmark(IR(ir->op2)->t); /* Mark stored value. */
107 break; 107 break;
diff --git a/src/lj_parse.c b/src/lj_parse.c
index 08f7cfa6..c8efafad 100644
--- a/src/lj_parse.c
+++ b/src/lj_parse.c
@@ -2667,7 +2667,8 @@ static int parse_stmt(LexState *ls)
2667 lj_lex_next(ls); 2667 lj_lex_next(ls);
2668 parse_goto(ls); 2668 parse_goto(ls);
2669 break; 2669 break;
2670 } /* else: fallthrough */ 2670 }
2671 /* fallthrough */
2671 default: 2672 default:
2672 parse_call_assign(ls); 2673 parse_call_assign(ls);
2673 break; 2674 break;
diff --git a/src/luajit.c b/src/luajit.c
index 1ca24301..3a3ec247 100644
--- a/src/luajit.c
+++ b/src/luajit.c
@@ -421,6 +421,7 @@ static int collectargs(char **argv, int *flags)
421 break; 421 break;
422 case 'e': 422 case 'e':
423 *flags |= FLAGS_EXEC; 423 *flags |= FLAGS_EXEC;
424 /* fallthrough */
424 case 'j': /* LuaJIT extension */ 425 case 'j': /* LuaJIT extension */
425 case 'l': 426 case 'l':
426 *flags |= FLAGS_OPTION; 427 *flags |= FLAGS_OPTION;