Print this page
4470 overly aggressive D integer narrowing breaks 32-bit ustack helpers

*** 474,484 **** int rg; if (!dt_node_is_scalar(dst)) return; /* not a scalar */ if (dstsize == srcsize && ! ((src->dn_flags ^ dst->dn_flags) & DT_NF_SIGNED) != 0) return; /* not narrowing or changing signed-ness */ if (dstsize > srcsize && (src->dn_flags & DT_NF_SIGNED) == 0) return; /* nothing to do in this case */ rg = dt_regset_alloc(drp); --- 474,484 ---- int rg; if (!dt_node_is_scalar(dst)) return; /* not a scalar */ if (dstsize == srcsize && ! ((src->dn_flags ^ dst->dn_flags) & DT_NF_SIGNED) == 0) return; /* not narrowing or changing signed-ness */ if (dstsize > srcsize && (src->dn_flags & DT_NF_SIGNED) == 0) return; /* nothing to do in this case */ rg = dt_regset_alloc(drp);