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;