diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_cparse.c | 10 |
1 files changed, 10 insertions, 0 deletions
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; |