From f7d7eeb24693f53bfbec7c29005f54da34bb5c2c Mon Sep 17 00:00:00 2001 From: Jose Rodriguez Date: Wed, 27 May 2020 23:59:58 +0200 Subject: [PATCH] Fix crash on unknown constant dimension --- symbols/bound.py | 7 +++++++ tests/functional/dim_const_crash.bas | 4 ++++ 2 files changed, 11 insertions(+) create mode 100644 tests/functional/dim_const_crash.bas diff --git a/symbols/bound.py b/symbols/bound.py index 7cf55ddc3..7f6d32806 100644 --- a/symbols/bound.py +++ b/symbols/bound.py @@ -50,8 +50,15 @@ def make_node(lower, upper, lineno): if isinstance(lower, SymbolVAR): lower = lower.value + if lower is None: # semantic error + syntax_error(lineno, "Unknown lower bound for array dimension") + return + if isinstance(upper, SymbolVAR): upper = upper.value + if upper is None: # semantic error + syntax_error(lineno, "Unknown upper bound for array dimension") + return lower.value = int(lower.value) upper.value = int(upper.value) diff --git a/tests/functional/dim_const_crash.bas b/tests/functional/dim_const_crash.bas new file mode 100644 index 000000000..e0f27a17d --- /dev/null +++ b/tests/functional/dim_const_crash.bas @@ -0,0 +1,4 @@ + +const MAXMOBS as ubyte = MHEIGHT +dim mobCoords(0 to MAXMOBS, 0 to 1) as ubyte +