From 41e7cadb8df4b9833bc3dd827cac32fd3b01ddbd Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 2 Aug 2016 20:53:18 +0100 Subject: ret, unreachable, param, deref --- src/checker/statements.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/checker/statements.cpp') diff --git a/src/checker/statements.cpp b/src/checker/statements.cpp index bf6f0d87b..8910e7d3d 100644 --- a/src/checker/statements.cpp +++ b/src/checker/statements.cpp @@ -724,7 +724,6 @@ void check_stmt(Checker *c, AstNode *node, u32 flags) { case_end; case_ast_node(fs, ForStmt, node); - flags |= Statement_BreakAllowed | Statement_ContinueAllowed; check_open_scope(c, node); defer (check_close_scope(c)); @@ -739,9 +738,9 @@ void check_stmt(Checker *c, AstNode *node, u32 flags) { "Non-boolean condition in `for` statement"); } } - if (fs->end != NULL) - check_stmt(c, fs->end, 0); - check_stmt(c, fs->body, flags); + if (fs->post != NULL) + check_stmt(c, fs->post, 0); + check_stmt(c, fs->body, flags | Statement_BreakAllowed | Statement_ContinueAllowed); case_end; case_ast_node(ds, DeferStmt, node); @@ -752,6 +751,7 @@ void check_stmt(Checker *c, AstNode *node, u32 flags) { c->in_defer = true; check_stmt(c, ds->stmt, 0); c->in_defer = out_in_defer; + check_add_deferred_stmt(c, ds->stmt); } case_end; -- cgit v1.2.3