ravif2 (struct ravi_lua_State * L) { struct ravi_CallInfo * D.1181; struct ravi_TValue * D.1182; sizetype D.1183; struct ravi_TValue * D.1184; struct ravi_Proto * D.1185; struct ravi_TValue * D.1186; sizetype D.1187; struct ravi_TValue * D.1188; signed long D.1189; signed int D.1190; signed int D.1191; signed int D.1192; iftmp.3; iftmp.4; iftmp.5; iftmp.6; D.1213; signed int D.1214; iftmp.7; iftmp.8; sizetype D.1225; struct ravi_TValue * D.1226; signed int D.1227; struct ravi_TValue * D.1228; signed int D.1229; 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; struct ravi_TValue * base; entry: D.1181 = L->ci; D.1182 = D.1181->func; cl = D.1182->value_.gc; D.1181 = L->ci; base = D.1181->u.l.base; D.1181 = L->ci; raviV_op_loadnil (D.1181, 0, 0); D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1185 = cl->p; D.1186 = D.1185->k; D.1187 = 0; D.1188 = D.1186 + D.1187; D.1189 = D.1188->value_.i; D.1184->value_.i = D.1189; D.1183 = 16; D.1184 = base + D.1183; D.1185 = cl->p; D.1186 = D.1185->k; D.1187 = 0; D.1188 = D.1186 + D.1187; D.1190 = D.1188->tt_; D.1184->tt_ = D.1190; D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1191 = D.1184->tt_; comparison_0_5 = D.1191 == 0; D.1183 = 16; D.1184 = base + D.1183; D.1191 = D.1184->tt_; comparison_0_6 = D.1191 == 1; D.1183 = 16; D.1184 = base + D.1183; D.1192 = D.1184->value_.b; comparison_0_7 = D.1192 == 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.4 = 1; goto ; : iftmp.4 = 0; : if (iftmp.4 != 0) goto ; else goto ; : iftmp.3 = 1; goto ; : iftmp.3 = 0; : isfalse_0_4 = iftmp.3; if (isfalse_0_4 == 0) goto OP_TEST_do_jmp_2_8; else goto OP_TEST_do_skip_2_9; jmp_5_1: D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1184->value_.b = 0; D.1183 = 16; D.1184 = base + D.1183; D.1184->tt_ = 1; D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1191 = D.1184->tt_; comparison_0_11 = D.1191 == 0; D.1183 = 16; D.1184 = base + D.1183; D.1191 = D.1184->tt_; comparison_0_12 = D.1191 == 1; D.1183 = 16; D.1184 = base + D.1183; D.1192 = D.1184->value_.b; comparison_0_13 = D.1192 == 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.6 = 1; goto ; : iftmp.6 = 0; : if (iftmp.6 != 0) goto ; else goto ; : iftmp.5 = 1; goto ; : iftmp.5 = 0; : isfalse_0_10 = iftmp.5; D.1213 = ~isfalse_0_10; D.1214 = (signed int) D.1213; if (D.1214 == 0) goto OP_TEST_do_jmp_5_14; else goto OP_TEST_do_skip_5_15; jmp_9_2: D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1185 = cl->p; D.1186 = D.1185->k; D.1187 = 0; D.1188 = D.1186 + D.1187; D.1189 = D.1188->value_.i; D.1184->value_.i = D.1189; D.1183 = 16; D.1184 = base + D.1183; D.1185 = cl->p; D.1186 = D.1185->k; D.1187 = 0; D.1188 = D.1186 + D.1187; D.1190 = D.1188->tt_; D.1184->tt_ = D.1190; D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1191 = D.1184->tt_; comparison_0_17 = D.1191 == 0; D.1183 = 16; D.1184 = base + D.1183; D.1191 = D.1184->tt_; comparison_0_18 = D.1191 == 1; D.1183 = 16; D.1184 = base + D.1183; D.1192 = D.1184->value_.b; comparison_0_19 = D.1192 == 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.8 = 1; goto ; : iftmp.8 = 0; : if (iftmp.8 != 0) goto ; else goto ; : iftmp.7 = 1; goto ; : iftmp.7 = 0; : isfalse_0_16 = iftmp.7; if (isfalse_0_16 == 0) goto OP_TEST_do_jmp_9_20; else goto OP_TEST_do_skip_9_21; jmp_12_3: D.1181 = L->ci; base = D.1181->u.l.base; D.1183 = 16; D.1184 = base + D.1183; D.1184->value_.b = 0; D.1183 = 16; D.1184 = base + D.1183; D.1184->tt_ = 1; D.1181 = L->ci; base = D.1181->u.l.base; D.1225 = 32; D.1226 = base + D.1225; L->top = D.1226; D.1185 = cl->p; D.1227 = D.1185->sizep; comparison_0_22 = D.1227 > 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.1181 = L->ci; base = D.1181->u.l.base; D.1187 = 0; D.1228 = base + D.1187; D.1228->value_.b = 1; D.1187 = 0; D.1228 = base + D.1187; D.1228->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: luaF_close (L, base); goto OP_RETURN_else_sizep_gt_0_12_24; OP_RETURN_else_sizep_gt_0_12_24: D.1183 = 16; D.1184 = base + D.1183; luaD_poscall (L, D.1184); D.1229 = 1; return D.1229; OP_RETURN_13_25: D.1181 = L->ci; base = D.1181->u.l.base; D.1187 = 0; D.1228 = base + D.1187; L->top = D.1228; D.1185 = cl->p; D.1227 = D.1185->sizep; comparison_0_26 = D.1227 > 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: luaF_close (L, base); goto OP_RETURN_else_sizep_gt_0_13_28; OP_RETURN_else_sizep_gt_0_13_28: D.1187 = 0; D.1228 = base + D.1187; luaD_poscall (L, D.1228); D.1229 = 1; return D.1229; } .file "fake.c" .section .text.unlikely,"ax",@progbits .LCOLDB1: .text .LHOTB1: .p2align 4,,15 .globl ravif2 .type ravif2, @function ravif2: .LFB1: .cfi_startproc .L35: pushq %r12 .cfi_def_cfa_offset 16 .cfi_offset 12, -16 xorl %edx, %edx xorl %esi, %esi pushq %rbp .cfi_def_cfa_offset 24 .cfi_offset 6, -24 movq %rdi, %rbp pushq %rbx .cfi_def_cfa_offset 32 .cfi_offset 3, -32 movq 32(%rdi), %rdi movq (%rdi), %rax movq (%rax), %r12 call raviV_op_loadnil@PLT movq 32(%rbp), %rax movq 32(%rax), %rbx movq 24(%r12), %rax movq 48(%rax), %rdx movl 32(%rax), %eax movq (%rdx), %rcx movl $1, 24(%rbx) movq %rcx, 16(%rbx) movq (%rdx), %rdx movq %rdx, 16(%rbx) leaq 32(%rbx), %rdx movq %rdx, 16(%rbp) testl %eax, %eax jle .L36 .L37: movq %rbx, %rsi movq %rbp, %rdi call luaF_close@PLT .L36: leaq 16(%rbx), %rsi movq %rbp, %rdi call luaD_poscall@PLT popq %rbx .cfi_def_cfa_offset 24 movl $1, %eax popq %rbp .cfi_def_cfa_offset 16 popq %r12 .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE1: .size ravif2, .-ravif2 .section .text.unlikely .LCOLDE1: .text .LHOTE1: .ident "GCC: (GNU) 5.1.0" .section .note.GNU-stack,"",@progbits ../build/lua: assertion failed! stack traceback: [C]: in function 'assert' bug.lua: in main chunk [C]: in ?