summaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/parse.c b/parse.c
index 7c6fe7d..37bf68e 100644
--- a/parse.c
+++ b/parse.c
@@ -2449,6 +2449,10 @@ static Status parse_stmt(Parser *p, Statement *s, bool *was_a_statement) {
}
goto success;
case KW_DEFER:
+ if (p->block == NULL) {
+ tokr_err(t, "You can't defer something at global scope.");
+ return false;
+ }
s->kind = STMT_DEFER;
++t->token;
s->defer = parser_malloc(p, sizeof *s->defer);