aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-01-08 21:32:53 +0100
committerAndrew Kelley <andrew@ziglang.org>2020-01-08 17:25:00 -0500
commit27b290f3125b2526200bad4a818f9f43ba58ee2e (patch)
tree58fd85562beb8abcfebfadff1e525028518c51f8 /src/analyze.cpp
parent02ace4569ec52561f627ad3a33d7b90b7bdbb6f5 (diff)
downloadzig-27b290f3125b2526200bad4a818f9f43ba58ee2e.tar.gz
zig-27b290f3125b2526200bad4a818f9f43ba58ee2e.zip
Propagate more failures upwards
Fixes #4112
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index b15d986558..a19b56cc9d 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -4787,11 +4787,16 @@ static void analyze_fn_body(CodeGen *g, ZigFn *fn_table_entry) {
ZigType *fn_type = fn_table_entry->type_entry;
assert(!fn_type->data.fn.is_generic);
- ir_gen_fn(g, fn_table_entry);
+ if (!ir_gen_fn(g, fn_table_entry)) {
+ fn_table_entry->anal_state = FnAnalStateInvalid;
+ return;
+ }
+
if (fn_table_entry->ir_executable->first_err_trace_msg != nullptr) {
fn_table_entry->anal_state = FnAnalStateInvalid;
return;
}
+
if (g->verbose_ir) {
fprintf(stderr, "\n");
ast_render(stderr, fn_table_entry->body_node, 4);