; start of dump from pass_lower_eh (../../src/gcc/tree-eh.c:2165) ;; Function ravif2 (ravif2, funcdef_no=0, decl_uid=364, cgraph_uid=0, symbol_order=0) ravif2 (struct ravi_lua_State * L) { struct ravi_TValue * base; struct ravi_LClosure * cl; isfalse_0_4; comparison_0_5; comparison_0_6; comparison_0_7; isfalse_0_10; comparison_0_11; comparison_0_12; comparison_0_13; isfalse_0_16; comparison_0_17; comparison_0_18; comparison_0_19; comparison_0_22; comparison_0_26; signed int D.445; struct ravi_TValue * D.444; signed int D.443; struct ravi_TValue * D.442; sizetype D.441; iftmp.5; iftmp.4; signed int D.430; D.429; iftmp.3; iftmp.2; iftmp.1; iftmp.0; signed int D.408; signed int D.407; signed int D.406; signed long D.405; struct ravi_TValue * D.404; sizetype D.403; struct ravi_TValue * D.402; struct ravi_Proto * D.401; struct ravi_TValue * D.400; sizetype D.399; struct ravi_TValue * D.398; struct ravi_CallInfo * D.397; entry: D.397 = L->ci; D.398 = D.397->func; cl = D.398->value_.gc; D.397 = L->ci; base = D.397->u.l.base; D.397 = L->ci; raviV_op_loadnil (D.397, 0, 0); D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.405 = D.404->value_.i; D.400->value_.i = D.405; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.406 = D.404->tt_; D.400->tt_ = D.406; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_5 = D.407 == 0; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_6 = D.407 == 1; D.399 = 16; D.400 = base + D.399; D.408 = D.400->value_.b; comparison_0_7 = D.408 == 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.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.400->value_.b = 0; D.399 = 16; D.400 = base + D.399; D.400->tt_ = 1; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_11 = D.407 == 0; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_12 = D.407 == 1; D.399 = 16; D.400 = base + D.399; D.408 = D.400->value_.b; comparison_0_13 = D.408 == 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.429 = ~isfalse_0_10; D.430 = (signed int) D.429; if (D.430 == 0) goto OP_TEST_do_jmp_5_14; else goto OP_TEST_do_skip_5_15; jmp_9_2: D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.405 = D.404->value_.i; D.400->value_.i = D.405; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.406 = D.404->tt_; D.400->tt_ = D.406; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_17 = D.407 == 0; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_18 = D.407 == 1; D.399 = 16; D.400 = base + D.399; D.408 = D.400->value_.b; comparison_0_19 = D.408 == 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.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.400->value_.b = 0; D.399 = 16; D.400 = base + D.399; D.400->tt_ = 1; printf ("OP_RETURN(pc=%d) return %d args", 13, 1); D.397 = L->ci; base = D.397->u.l.base; D.441 = 32; D.442 = base + D.441; L->top = D.442; D.401 = cl->p; D.443 = D.401->sizep; comparison_0_22 = D.443 > 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.397 = L->ci; base = D.397->u.l.base; D.403 = 0; D.444 = base + D.403; D.444->value_.b = 1; D.403 = 0; D.444 = base + D.403; D.444->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.399 = 16; D.400 = base + D.399; luaD_poscall (L, D.400); D.445 = 1; goto ; OP_RETURN_13_25: printf ("OP_RETURN(pc=%d) return %d args", 14, 0); D.397 = L->ci; base = D.397->u.l.base; D.403 = 0; D.444 = base + D.403; L->top = D.444; D.401 = cl->p; D.443 = D.401->sizep; comparison_0_26 = D.443 > 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.403 = 0; D.444 = base + D.403; luaD_poscall (L, D.444); D.445 = 1; goto ; : return D.445; } ; end of dump from pass_lower_eh (../../src/gcc/tree-eh.c:2165)