summaryrefslogtreecommitdiffhomepage
path: root/compiler.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2021-07-05 16:44:48 +0200
committerJo-Philipp Wich <jo@mein.io>2021-07-05 16:48:38 +0200
commitdf5db5f1deb809b8570185b2fd046a38db13537d (patch)
tree38de4dc49e8064f5e37fef13d3363ee6cdd5037a /compiler.c
parenta97c7a1378addace9d4c413543794a35c19d1f03 (diff)
compiler: don't segfault on invalid declaration expressions
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'compiler.c')
-rw-r--r--compiler.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler.c b/compiler.c
index dfd0d63..c3f2416 100644
--- a/compiler.c
+++ b/compiler.c
@@ -1930,7 +1930,12 @@ uc_compiler_compile_declexpr(uc_compiler *compiler, bool constant)
do {
/* parse variable name */
- uc_compiler_parse_consume(compiler, TK_LABEL);
+ if (!uc_compiler_parse_match(compiler, TK_LABEL)) {
+ uc_compiler_syntax_error(compiler, compiler->parser->curr.pos,
+ "Expecting variable name");
+
+ return;
+ }
/* declare local variable */
slot = uc_compiler_declare_local(compiler, compiler->parser->prev.uv, constant);