authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-02-10 16:13:35-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-02-10 22:58:49-08:00
log8d914ea7340c920c1929c5d666fc802b15f49a64
tree656d15e194840474279bf6c8ab874e26cbb339fb
parent1d8857bbe3d0fe2bb33c459b3f11209bab424882

compiler_rt memcpy: avoid infinite recursion

when compiled in debug mode (--debug-rt)

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

lib/compiler_rt/memcpy.zig+5-4
......@@ -175,10 +175,11 @@ inline fn copyRange4(
175175 const last = len - copy_len;
176176 const pen = last - b;
177177
178 dest[0..copy_len].* = src[0..copy_len].*;
179 dest[b..][0..copy_len].* = src[b..][0..copy_len].*;
180 dest[pen..][0..copy_len].* = src[pen..][0..copy_len].*;
181 dest[last..][0..copy_len].* = src[last..][0..copy_len].*;
178 const Int = @Type(.{ .int = .{ .signedness = .unsigned, .bits = copy_len * 8 } });
179 @as(*align(1) Int, @ptrCast(dest[0..copy_len])).* = @as(*align(1) const Int, @ptrCast(src[0..copy_len])).*;
180 @as(*align(1) Int, @ptrCast(dest[b..][0..copy_len])).* = @as(*align(1) const Int, @ptrCast(src[b..][0..copy_len])).*;
181 @as(*align(1) Int, @ptrCast(dest[pen..][0..copy_len])).* = @as(*align(1) const Int, @ptrCast(src[pen..][0..copy_len])).*;
182 @as(*align(1) Int, @ptrCast(dest[last..][0..copy_len])).* = @as(*align(1) const Int, @ptrCast(src[last..][0..copy_len])).*;
182183}
183184
184185test "memcpy" {