From bcf2aa511cf9f530c8b06001b25efcd8d24c052d Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 18 Jan 1990 10:12:38 +0000 Subject: [PATCH] bug fix: casts of constants to a set type caused memory fault --- lang/m2/comp/chk_expr.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lang/m2/comp/chk_expr.c b/lang/m2/comp/chk_expr.c index 02c831485..8e7f30c42 100644 --- a/lang/m2/comp/chk_expr.c +++ b/lang/m2/comp/chk_expr.c @@ -1415,6 +1415,13 @@ ChkCast(expp) if (arg->nd_class == Value) { *expp = *arg; free_node(arg); + if (lefttype->tp_fund == T_SET) { + /* User deserves what he gets here ... */ + arith val = expp->nd_INT; + + expp->nd_set = MkSet((unsigned)(lefttype->tp_size)); + expp->nd_set[0] = val; + } } else { expp->nd_symb = CAST; -- 2.34.1