authorgravatar for me@gasinfinity.devGasInfinity <me@gasinfinity.dev> 2026-01-16 01:58:35+01:00
committergravatar for me@gasinfinity.devGasInfinity <me@gasinfinity.dev> 2026-01-16 01:58:35+01:00
loge3309aaf4ffcf9fb1309bf02b429f31b44d55448
tree4fc525f2818b75d71fa9553210c8ec696250a27b
parente22bf480aaaca806aa0d4ed0108ad5a719fed25d
signaturebadge-check Signed by SSH key SHA256:p3IHbr0lyK2ekfDC1Zi7dOEV/9T6lGghNawhl5sBnM4

fix(libzigc): workaround LLVM bug

* looks like we get stuck inside this loop? https://github.com/llvm/llvm-project/blob/2078da43e25a4623cab2d0d60decddf709aaea28/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp#L245-L298

1 files changed, 6 insertions(+), 1 deletions(-)

lib/c/wchar.zig+6-1
...@@ -107,7 +107,12 @@ fn wcsncmp(a: [*:0]const wchar_t, b: [*:0]const wchar_t, max: usize) callconv(.c...@@ -107,7 +107,12 @@ fn wcsncmp(a: [*:0]const wchar_t, b: [*:0]const wchar_t, max: usize) callconv(.c
107}107}
108108
109fn wcpcpy(noalias dst: [*]wchar_t, noalias src: [*:0]const wchar_t) callconv(.c) [*]wchar_t {109fn wcpcpy(noalias dst: [*]wchar_t, noalias src: [*:0]const wchar_t) callconv(.c) [*]wchar_t {
110 return wcpncpy(dst, src, std.math.maxInt(usize));110 const src_slice = std.mem.span(src);
111 @memcpy(dst[0..src_slice.len], src_slice);
112 dst[src_slice.len] = 0;
113 return dst + src_slice.len;
114 // XXX: LLVM bug?
115 // return wcpncpy(dst, src, std.math.maxInt(usize));
111}116}
112117
113fn wcpncpy(noalias dst: [*]wchar_t, noalias src: [*:0]const wchar_t, max: usize) callconv(.c) [*]wchar_t {118fn wcpncpy(noalias dst: [*]wchar_t, noalias src: [*:0]const wchar_t, max: usize) callconv(.c) [*]wchar_t {