From 07fe60ded1727d528d3ae36b892aa7c84262ed96 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 6 Oct 2016 01:09:01 -0400 Subject: IR in 2 passes --- src/analyze.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/analyze.cpp') diff --git a/src/analyze.cpp b/src/analyze.cpp index fc583b2658..0c7e1c1292 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -7088,9 +7088,16 @@ static void analyze_fn_body(CodeGen *g, FnTableEntry *fn_table_entry) { fprintf(stderr, "}\n"); } - TypeTableEntry *block_return_type = ir_analyze(g, &fn_table_entry->ir_executable, expected_type); + TypeTableEntry *block_return_type = ir_analyze(g, &fn_table_entry->ir_executable, + &fn_table_entry->analyzed_executable, expected_type); node->data.fn_def.implicit_return_type = block_return_type; + if (g->verbose) { + fprintf(stderr, "fn %s { // (analyzed)\n", buf_ptr(&fn_table_entry->symbol_name)); + ir_print(stderr, &fn_table_entry->analyzed_executable, 4); + fprintf(stderr, "}\n"); + } + fn_table_entry->anal_state = FnAnalStateComplete; } -- cgit v1.2.3