authorgravatar for rpkak@noreply.codeberg.orgrpkak <rpkak@noreply.codeberg.org> 2026-06-14 14:32:34+02:00
committergravatar for rpkak@noreply.codeberg.orgrpkak <rpkak@noreply.codeberg.org> 2026-07-21 09:06:26+02:00
log0e61c9aba3ca641d7cdade43ef239d1a2c9ab58d
tree1b302a2aff7ebc45a783718f87363cf7c8193996
parent5eb216744aa62c5cafa0891fd5a7630ab52c2acf
signaturebadge-check Signed by SSH key SHA256:A2g6ATENrgLKQcUdthsn72P0njmQxnHSimzwnyJsZzo

compiler_rt: fix arg type of memset and __memset_chk


2 files changed, 5 insertions(+), 4 deletions(-)

lib/compiler_rt.zig+3-2
......@@ -649,14 +649,15 @@ inline fn negXi2(comptime T: type, a: T) T {
649649 return -a;
650650}
651651
652pub fn memset(dest: ?[*]u8, c: u8, len: usize) callconv(.c) ?[*]u8 {
652pub fn memset(dest: ?[*]u8, c: c_int, len: usize) callconv(.c) ?[*]u8 {
653653 @setRuntimeSafety(false);
654 const b: u8 = @truncate(@as(c_uint, @bitCast(c)));
654655
655656 if (len != 0) {
656657 var d = dest.?;
657658 var n = len;
658659 while (true) {
659 d[0] = c;
660 d[0] = b;
660661 n -= 1;
661662 if (n == 0) break;
662663 d += 1;
lib/compiler_rt/ssp.zig+2-2
......@@ -17,7 +17,7 @@ const compiler_rt = @import("../compiler_rt.zig");
1717const symbol = compiler_rt.symbol;
1818const builtin = @import("builtin");
1919
20extern fn memset(dest: ?[*]u8, c: u8, n: usize) callconv(.c) ?[*]u8;
20extern fn memset(dest: ?[*]u8, c: c_int, n: usize) callconv(.c) ?[*]u8;
2121extern fn memcpy(noalias dest: ?[*]u8, noalias src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8;
2222extern fn memmove(dest: ?[*]u8, src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8;
2323
......@@ -138,7 +138,7 @@ fn __memmove_chk(dest: ?[*]u8, src: ?[*]const u8, n: usize, dest_n: usize) callc
138138 return memmove(dest, src, n);
139139}
140140
141fn __memset_chk(dest: ?[*]u8, c: u8, n: usize, dest_n: usize) callconv(.c) ?[*]u8 {
141fn __memset_chk(dest: ?[*]u8, c: c_int, n: usize, dest_n: usize) callconv(.c) ?[*]u8 {
142142 if (dest_n < n) __chk_fail();
143143 return memset(dest, c, n);
144144}