ravif1 (struct ravi_lua_State * L) { struct ravi_CallInfo * D.762; struct ravi_TValue * D.763; struct ravi_TValue * D.764; sizetype D.765; struct ravi_TValue * D.766; struct ravi_Proto * D.767; struct ravi_TValue * D.768; sizetype D.769; struct ravi_TValue * D.770; signed long D.771; signed int D.772; signed int D.773; signed int D.774; iftmp.0; iftmp.1; iftmp.2; iftmp.3; D.795; signed int D.796; iftmp.4; iftmp.5; sizetype D.807; struct ravi_TValue * D.808; signed int D.809; struct ravi_TValue * D.810; signed int D.811; comparison_0_26; comparison_0_22; comparison_0_19; comparison_0_18; comparison_0_17; isfalse_0_16; comparison_0_13; comparison_0_12; comparison_0_11; isfalse_0_10; comparison_0_7; comparison_0_6; comparison_0_5; isfalse_0_4; struct ravi_LClosure * cl; entry: D.762 = L->ci; D.763 = D.762->func; cl = D.763->value_.gc; D.762 = L->ci; raviV_op_loadnil (D.762, 0, 0); D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.767 = cl->p; D.768 = D.767->k; D.769 = 0; D.770 = D.768 + D.769; D.771 = D.770->value_.i; D.766->value_.i = D.771; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.767 = cl->p; D.768 = D.767->k; D.769 = 0; D.770 = D.768 + D.769; D.772 = D.770->tt_; D.766->tt_ = D.772; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.773 = D.766->tt_; comparison_0_5 = D.773 == 0; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.773 = D.766->tt_; comparison_0_6 = D.773 == 1; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.774 = D.766->value_.b; comparison_0_7 = D.774 == 0; if (comparison_0_5 != 0) goto ; else goto ; : if (comparison_0_6 != 0) goto ; else goto ; : if (comparison_0_7 != 0) goto ; else goto ; : iftmp.1 = 1; goto ; : iftmp.1 = 0; : if (iftmp.1 != 0) goto ; else goto ; : iftmp.0 = 1; goto ; : iftmp.0 = 0; : isfalse_0_4 = iftmp.0; if (isfalse_0_4 == 0) goto OP_TEST_do_jmp_2_8; else goto OP_TEST_do_skip_2_9; jmp_5_1: D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.766->value_.b = 0; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.766->tt_ = 1; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.773 = D.766->tt_; comparison_0_11 = D.773 == 0; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.773 = D.766->tt_; comparison_0_12 = D.773 == 1; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.774 = D.766->value_.b; comparison_0_13 = D.774 == 0; if (comparison_0_11 != 0) goto ; else goto ; : if (comparison_0_12 != 0) goto ; else goto ; : if (comparison_0_13 != 0) goto ; else goto ; : iftmp.3 = 1; goto ; : iftmp.3 = 0; : if (iftmp.3 != 0) goto ; else goto ; : iftmp.2 = 1; goto ; : iftmp.2 = 0; : isfalse_0_10 = iftmp.2; D.795 = ~isfalse_0_10; D.796 = (signed int) D.795; if (D.796 == 0) goto OP_TEST_do_jmp_5_14; else goto OP_TEST_do_skip_5_15; jmp_9_2: D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.767 = cl->p; D.768 = D.767->k; D.769 = 0; D.770 = D.768 + D.769; D.771 = D.770->value_.i; D.766->value_.i = D.771; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.767 = cl->p; D.768 = D.767->k; D.769 = 0; D.770 = D.768 + D.769; D.772 = D.770->tt_; D.766->tt_ = D.772; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.773 = D.766->tt_; comparison_0_17 = D.773 == 0; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.773 = D.766->tt_; comparison_0_18 = D.773 == 1; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.774 = D.766->value_.b; comparison_0_19 = D.774 == 0; if (comparison_0_17 != 0) goto ; else goto ; : if (comparison_0_18 != 0) goto ; else goto ; : if (comparison_0_19 != 0) goto ; else goto ; : iftmp.5 = 1; goto ; : iftmp.5 = 0; : if (iftmp.5 != 0) goto ; else goto ; : iftmp.4 = 1; goto ; : iftmp.4 = 0; : isfalse_0_16 = iftmp.4; if (isfalse_0_16 == 0) goto OP_TEST_do_jmp_9_20; else goto OP_TEST_do_skip_9_21; jmp_12_3: D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.766->value_.b = 0; D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; D.766->tt_ = 1; D.762 = L->ci; D.764 = D.762->u.l.base; D.807 = 32; D.808 = D.764 + D.807; L->top = D.808; D.767 = cl->p; D.809 = D.767->sizep; comparison_0_22 = D.809 > 0; if (comparison_0_22 != 0) goto OP_RETURN_if_sizep_gt_0_12_23; else goto OP_RETURN_else_sizep_gt_0_12_24; OP_TEST_do_jmp_2_8: goto jmp_5_1; OP_TEST_do_skip_2_9: goto jmp_5_1; OP_TEST_do_jmp_5_14: goto jmp_9_2; OP_TEST_do_skip_5_15: D.762 = L->ci; D.764 = D.762->u.l.base; D.769 = 0; D.810 = D.764 + D.769; D.810->value_.b = 1; D.762 = L->ci; D.764 = D.762->u.l.base; D.769 = 0; D.810 = D.764 + D.769; D.810->tt_ = 1; goto jmp_9_2; OP_TEST_do_jmp_9_20: goto jmp_12_3; OP_TEST_do_skip_9_21: goto jmp_12_3; OP_RETURN_if_sizep_gt_0_12_23: D.762 = L->ci; D.764 = D.762->u.l.base; luaF_close (L, D.764); goto OP_RETURN_else_sizep_gt_0_12_24; OP_RETURN_else_sizep_gt_0_12_24: D.762 = L->ci; D.764 = D.762->u.l.base; D.765 = 16; D.766 = D.764 + D.765; luaD_poscall (L, D.766); D.811 = 1; return D.811; LINK_BLOCK_13_25: D.762 = L->ci; D.764 = D.762->u.l.base; D.769 = 0; D.810 = D.764 + D.769; L->top = D.810; D.767 = cl->p; D.809 = D.767->sizep; comparison_0_26 = D.809 > 0; if (comparison_0_26 != 0) goto OP_RETURN_if_sizep_gt_0_13_27; else goto OP_RETURN_else_sizep_gt_0_13_28; OP_RETURN_if_sizep_gt_0_13_27: D.762 = L->ci; D.764 = D.762->u.l.base; luaF_close (L, D.764); goto OP_RETURN_else_sizep_gt_0_13_28; OP_RETURN_else_sizep_gt_0_13_28: D.762 = L->ci; D.764 = D.762->u.l.base; D.769 = 0; D.810 = D.764 + D.769; luaD_poscall (L, D.810); D.811 = 1; return D.811; } .file "fake.c" .section .text.unlikely,"ax",@progbits .LCOLDB0: .text .LHOTB0: .p2align 4,,15 .globl ravif1 .type ravif1, @function ravif1: .LFB0: .cfi_startproc .L2: pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 movq %rdi, %rbx xorl %edx, %edx xorl %esi, %esi subq $8, %rsp .cfi_def_cfa_offset 32 movq 32(%rdi), %rdi movq (%rdi), %rax movq (%rax), %rbp call raviV_op_loadnil@PLT movq 32(%rbx), %rax movq 24(%rbp), %rdx movq 32(%rax), %rsi movq 48(%rdx), %rcx movl 32(%rdx), %edx movq (%rcx), %rdi testl %edx, %edx movl $1, 24(%rsi) movq %rdi, 16(%rsi) movq (%rcx), %rcx movq %rcx, 16(%rsi) leaq 32(%rsi), %rcx movq %rcx, 16(%rbx) jle .L3 .L4: movq %rbx, %rdi call luaF_close@PLT movq 32(%rbx), %rax .L3: movq 32(%rax), %rsi movq %rbx, %rdi addq $16, %rsi call luaD_poscall@PLT addq $8, %rsp .cfi_def_cfa_offset 24 movl $1, %eax popq %rbx .cfi_def_cfa_offset 16 popq %rbp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE0: .size ravif1, .-ravif1 .section .text.unlikely .LCOLDE0: .text .LHOTE0: .ident "GCC: (GNU) 5.1.1 20150704" .section .note.GNU-stack,"",@progbits ../build/lua: bug.lua:8: assertion failed! stack traceback: [C]: in function 'assert' bug.lua:8: in main chunk [C]: in ?