diff --git a/src/builtins/compare.c b/src/builtins/compare.c index d48a87be..7c7267b4 100644 --- a/src/builtins/compare.c +++ b/src/builtins/compare.c @@ -218,6 +218,7 @@ static NOINLINE bool eequalFloat(f64* wp, f64* xp, usz ia) { if (ia==0) return true; NOINLINE bool equal(B w, B x) { // doesn't consume + NOGC_CHECK("cannot use equal(w,x) during noAlloc"); EQ_START(atomEqual); u8 we = TI(w,elType); @@ -228,6 +229,7 @@ NOINLINE bool equal(B w, B x) { // doesn't consume } bool eequal(B w, B x) { // doesn't consume + NOGC_CHECK("cannot use eequal(w,x) during noAlloc"); if (w.u==x.u) return true; EQ_START(atomEEqual); diff --git a/src/builtins/slash.c b/src/builtins/slash.c index 512d2312..4430b6d6 100644 --- a/src/builtins/slash.c +++ b/src/builtins/slash.c @@ -1170,6 +1170,10 @@ B slash_ucw(B t, B o, B w, B x) { u64* d = bitany_ptr(w); for (usz i = 0; i < ia; i++) mut_setG(r, i, bitp_get(d, i)? Get(rep,repI++) : Get(x,i)); } else { + if (re == el_B) { + mut_fillG(r, 0, m_f64(0), ia); + NOGC_E; + } SGetU(rep) for (usz i = 0; i < ia; i++) { i32 cw = o2iG(GetU(w, i));