From 0e61c9aba3ca641d7cdade43ef239d1a2c9ab58d Mon Sep 17 00:00:00 2001 From: rpkak Date: Sun, 14 Jun 2026 14:32:34 +0200 Subject: [PATCH] compiler_rt: fix arg type of memset and __memset_chk --- lib/compiler_rt.zig | 5 +++-- lib/compiler_rt/ssp.zig | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/compiler_rt.zig b/lib/compiler_rt.zig index e8a7d8a857f57d56dc737de84d3e0eeddb97a8c2..8e2fa4f0d5b8b85a0fcb14fdabd2ed1aca70f77d 100644 --- a/lib/compiler_rt.zig +++ b/lib/compiler_rt.zig @@ -649,14 +649,15 @@ inline fn negXi2(comptime T: type, a: T) T { return -a; } -pub fn memset(dest: ?[*]u8, c: u8, len: usize) callconv(.c) ?[*]u8 { +pub fn memset(dest: ?[*]u8, c: c_int, len: usize) callconv(.c) ?[*]u8 { @setRuntimeSafety(false); + const b: u8 = @truncate(@as(c_uint, @bitCast(c))); if (len != 0) { var d = dest.?; var n = len; while (true) { - d[0] = c; + d[0] = b; n -= 1; if (n == 0) break; d += 1; diff --git a/lib/compiler_rt/ssp.zig b/lib/compiler_rt/ssp.zig index 42d088eeb8ab714b4b3d9ac79e579634ffff11a3..20468b0c0de8eb23cc9dff83c3e1bcbf46417f57 100644 --- a/lib/compiler_rt/ssp.zig +++ b/lib/compiler_rt/ssp.zig @@ -17,7 +17,7 @@ const compiler_rt = @import("../compiler_rt.zig"); const symbol = compiler_rt.symbol; const builtin = @import("builtin"); -extern fn memset(dest: ?[*]u8, c: u8, n: usize) callconv(.c) ?[*]u8; +extern fn memset(dest: ?[*]u8, c: c_int, n: usize) callconv(.c) ?[*]u8; extern fn memcpy(noalias dest: ?[*]u8, noalias src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8; extern fn memmove(dest: ?[*]u8, src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8; @@ -138,7 +138,7 @@ fn __memmove_chk(dest: ?[*]u8, src: ?[*]const u8, n: usize, dest_n: usize) callc return memmove(dest, src, n); } -fn __memset_chk(dest: ?[*]u8, c: u8, n: usize, dest_n: usize) callconv(.c) ?[*]u8 { +fn __memset_chk(dest: ?[*]u8, c: c_int, n: usize, dest_n: usize) callconv(.c) ?[*]u8 { if (dest_n < n) __chk_fail(); return memset(dest, c, n); } -- 2.54.0