diff options
author | Jo-Philipp Wich <jo@mein.io> | 2021-07-05 16:44:48 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2021-07-05 16:48:38 +0200 |
commit | df5db5f1deb809b8570185b2fd046a38db13537d (patch) | |
tree | 38de4dc49e8064f5e37fef13d3363ee6cdd5037a /compiler.c | |
parent | a97c7a1378addace9d4c413543794a35c19d1f03 (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.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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); |