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 {...@@ -649,14 +649,15 @@ inline fn negXi2(comptime T: type, a: T) T {
649 return -a;649 return -a;
650}650}
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 {
653 @setRuntimeSafety(false);653 @setRuntimeSafety(false);
654 const b: u8 = @truncate(@as(c_uint, @bitCast(c)));
654655
655 if (len != 0) {656 if (len != 0) {
656 var d = dest.?;657 var d = dest.?;
657 var n = len;658 var n = len;
658 while (true) {659 while (true) {
659 d[0] = c;660 d[0] = b;
660 n -= 1;661 n -= 1;
661 if (n == 0) break;662 if (n == 0) break;
662 d += 1;663 d += 1;
lib/compiler_rt/ssp.zig+2-2
...@@ -17,7 +17,7 @@ const compiler_rt = @import("../compiler_rt.zig");...@@ -17,7 +17,7 @@ const compiler_rt = @import("../compiler_rt.zig");
17const symbol = compiler_rt.symbol;17const symbol = compiler_rt.symbol;
18const builtin = @import("builtin");18const 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;
21extern fn memcpy(noalias dest: ?[*]u8, noalias src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8;21extern fn memcpy(noalias dest: ?[*]u8, noalias src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8;
22extern fn memmove(dest: ?[*]u8, src: ?[*]const u8, n: usize) callconv(.c) ?[*]u8;22extern 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...@@ -138,7 +138,7 @@ fn __memmove_chk(dest: ?[*]u8, src: ?[*]const u8, n: usize, dest_n: usize) callc
138 return memmove(dest, src, n);138 return memmove(dest, src, n);
139}139}
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 {
142 if (dest_n < n) __chk_fail();142 if (dest_n < n) __chk_fail();
143 return memset(dest, c, n);143 return memset(dest, c, n);
144}144}