commit e3309aaf4ffcf9fb1309bf02b429f31b44d55448 (tree)
parent e22bf480aaaca806aa0d4ed0108ad5a719fed25d
Author: GasInfinity <me@gasinfinity.dev>
Date: Fri, 16 Jan 2026 01:58:35 +0100
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
Diffstat:
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/c/wchar.zig b/lib/c/wchar.zig
@@ -107,7 +107,12 @@ fn wcsncmp(a: [*:0]const wchar_t, b: [*:0]const wchar_t, max: usize) callconv(.c
}
fn wcpcpy(noalias dst: [*]wchar_t, noalias src: [*:0]const wchar_t) callconv(.c) [*]wchar_t {
- return wcpncpy(dst, src, std.math.maxInt(usize));
+ const src_slice = std.mem.span(src);
+ @memcpy(dst[0..src_slice.len], src_slice);
+ dst[src_slice.len] = 0;
+ return dst + src_slice.len;
+ // XXX: LLVM bug?
+ // return wcpncpy(dst, src, std.math.maxInt(usize));
}
fn wcpncpy(noalias dst: [*]wchar_t, noalias src: [*:0]const wchar_t, max: usize) callconv(.c) [*]wchar_t {