summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-12-31 20:36:16 -0800
committerKaz Kylheku <kaz@kylheku.com>2016-12-31 20:36:16 -0800
commit90ff8d6428d0fb99459d3794077dc47fe618c73f (patch)
tree2b07b1c5293e817e997fa7a8d1648793ca17b00c /eval.c
parent398b5e506ae146d3bc63882343b40a46185fdade (diff)
downloadtxr-90ff8d6428d0fb99459d3794077dc47fe618c73f.tar.gz
txr-90ff8d6428d0fb99459d3794077dc47fe618c73f.tar.bz2
txr-90ff8d6428d0fb99459d3794077dc47fe618c73f.zip
Check for non-symbols in catch clauses.
* eval.c (expand_catch_clause): Check added that clause sym must be a symbol.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index ae16dcf0..1adc8e62 100644
--- a/eval.c
+++ b/eval.c
@@ -3623,6 +3623,8 @@ static val expand_catch_clause(val form, val menv)
val body_ex0 = expand_forms(body, new_menv);
cons_bind (params_ex, body_ex,
expand_params(params, body_ex0, menv, nil, form));
+ if (!symbolp(sym))
+ eval_error(form, lit("catch: ~s isn't a symbol"), sym, nao);
if (body == body_ex && params == params_ex)
return form;
return rlcp(cons(sym, cons(params_ex, body_ex)), form);