bug fix: casts of constants to a set type caused memory fault
authorceriel <none@none>
Thu, 18 Jan 1990 10:12:38 +0000 (10:12 +0000)
committerceriel <none@none>
Thu, 18 Jan 1990 10:12:38 +0000 (10:12 +0000)
lang/m2/comp/chk_expr.c

index 02c8314..8e7f30c 100644 (file)
@@ -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;