make gcc scream less

This commit is contained in:
dzaima 2022-09-07 20:28:45 +03:00
parent 0e306ca149
commit 2299c8094e
4 changed files with 6 additions and 5 deletions

View File

@ -300,7 +300,8 @@ B GRADE_CAT(c2)(B t, B w, B x) {
if (!elInt(we) | !elInt(xe)) goto gen;
w=toI32Any(w); x=toI32Any(x);
} else {
for (u64 i=0; i<xia; i++) rp[i]=wia; goto done;
for (u64 i=0; i<xia; i++) rp[i]=wia;
goto done;
}
} else { // character
if (elNum(xe)) {

View File

@ -259,7 +259,7 @@ B scan_c2(Md1D* d, B w, B x) { B f = d->f;
if (xe==el_i32 && wv==(i32)wv) { i32* xp=i32any_ptr(x); i32* rp; B r=m_i32arrv(&rp, ia); i32 c=wv; for (usz i=0; i<ia; i++) { if (xp[i]>c)c=xp[i]; rp[i]=c; } decG(x); return r; }
}
if (rtid==n_ne) { // ≠
if (!q_ibit(wv)) goto base; bool c=wv;
if (!q_ibit(wv)) { goto base; } bool c=wv;
if (xe==el_i8 ) { i8* xp=i8any_ptr (x); u64* rp; B r=m_bitarrv(&rp, ia); for (usz i=0; i<ia; i++) { c^= xp[i]; bitp_set(rp,i,c); } decG(x); return r; }
if (xe==el_i16) { i16* xp=i16any_ptr(x); u64* rp; B r=m_bitarrv(&rp, ia); for (usz i=0; i<ia; i++) { c^= xp[i]; bitp_set(rp,i,c); } decG(x); return r; }
if (xe==el_i32) { i32* xp=i32any_ptr(x); u64* rp; B r=m_bitarrv(&rp, ia); for (usz i=0; i<ia; i++) { c^= xp[i]; bitp_set(rp,i,c); } decG(x); return r; }

View File

@ -103,7 +103,7 @@ B select_c2(B t, B w, B x) {
if (max>=(i64)xia) thrF("⊏: Indexing out-of-bounds (%i∊𝕨, %s≡≠𝕩)", max, xia); \
W* ip=wp; usz off=xia; \
if (max>=0) { off=0; if (RARE(min<0)) { \
if (!wt) wt=TALLOCP(W,i1-i0); ip=wt-i0; \
if (!wt) {wt=TALLOCP(W,i1-i0);} ip=wt-i0; \
for (usz i=i0; i<i1; i++) { W e=wp[i]; ip[i]=e+((W)xia & (W)-(e<0)); } \
} } \
switch(xw) { default:UD; CASE(1,u8); CASE(2,u16); CASE(4,u32); CASE(8,f64); } \

View File

@ -360,8 +360,8 @@ B rand_range_c2(B t, B w, B x) {
if (t==t_bitarr) { mask = ~0L; goto end; }
mask = max-1;
mask|= mask<<32;
if (t==t_i32arr) goto end; mask|= mask<<16;
if (t==t_i16arr) goto end; mask|= mask<<8;
if (t==t_i32arr) { goto end; } mask|= mask<<16;
if (t==t_i16arr) { goto end; } mask|= mask<<8;
end:
NOUNROLL for (usz i = 0; i < u64am; i++) ((u64*)rp)[i] = wyrand(&seed) & mask;