DF-5696 / build.log
using CC=/tmp/opencode/zig/zig-linux-x86_64-0.13.0/zig cc
qsort_v.c sha256 (pin 18620ff1b212f95ac1e6dedecbdef1df59ce7a7cae5a5f69e0268ca425e10eed):
18620ff1b212f95ac1e6dedecbdef1df59ce7a7cae5a5f69e0268ca425e10eed qsort_v.c
qsort_v.c == qsort_v.src.c (authored copy)
=== diff verbatim -> qsort_fixed6.c ===
--- qsort_v.c 2026-10-10 05:42:08.835544906 +0000
+++ qsort_fixed6.c 2026-10-10 05:12:32.562682692 +0000
@@ -38,7 +38,7 @@
typedef int cmp_t(const void *, const void *);
#endif
static __inline char *med3(char *, char *, char *, cmp_t *, void *);
-static __inline void swapfunc(char *, char *, int, int);
+static __inline void swapfunc(char *, char *, size_t, int);
#define min(a, b) (a) < (b) ? (a) : (b)
@@ -60,7 +60,7 @@
es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
static __inline void
-swapfunc(char *a, char *b, int n, int swaptype)
+swapfunc(char *a, char *b, size_t n, int swaptype)
{
if(swaptype <= 1)
swapcode(long, a, b, n)
@@ -106,7 +106,8 @@
#endif
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
- int d, r, swaptype, swap_cnt;
+ int r, swaptype, swap_cnt;
+ size_t d, r2;
loop: SWAPINIT(a, es);
swap_cnt = 0;
@@ -166,20 +167,20 @@
}
pn = (char *)a + n * es;
- r = min(pa - (char *)a, pb - pa);
- vecswap(a, pb - r, r);
- r = min(pd - pc, pn - pd - es);
- vecswap(pb, pn - r, r);
- if ((r = pb - pa) > es)
+ r2 = min(pa - (char *)a, pb - pa);
+ vecswap(a, pb - r2, r2);
+ r2 = min(pd - pc, pn - pd - es);
+ vecswap(pb, pn - r2, r2);
+ if ((r2 = pb - pa) > es)
#ifdef I_AM_KQSORT_R
- kqsort_r(a, r / es, es, thunk, cmp);
+ kqsort_r(a, r2 / es, es, thunk, cmp);
#else
- kqsort(a, r / es, es, cmp);
+ kqsort(a, r2 / es, es, cmp);
#endif
- if ((r = pd - pc) > es) {
+ if ((r2 = pd - pc) > es) {
/* Iterate rather than recurse to save stack space */
- a = pn - r;
- n = r / es;
+ a = pn - r2;
+ n = r2 / es;
goto loop;
}
}
=== diff qsort_fixed6.c -> qsort_fixed67.c ===
--- qsort_fixed6.c 2026-10-10 05:12:32.562682692 +0000
+++ qsort_fixed67.c 2026-10-10 05:12:32.562682692 +0000
@@ -109,6 +109,8 @@
int r, swaptype, swap_cnt;
size_t d, r2;
+ if (es == 0) /* degenerate element size: nothing to do */
+ return;
loop: SWAPINIT(a, es);
swap_cnt = 0;
if (n < 7) {
BUILD_RC=0