Sema: implement comptime @memset
This commit is contained in:
@@ -359,8 +359,7 @@ test "@memset on array pointers" {
|
||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
|
||||
|
||||
try testMemsetArray();
|
||||
// TODO this doesn't pass yet
|
||||
// try comptime testMemsetArray();
|
||||
try comptime testMemsetArray();
|
||||
}
|
||||
|
||||
fn testMemsetArray() !void {
|
||||
@@ -371,15 +370,7 @@ fn testMemsetArray() !void {
|
||||
try expect(foo[0] == 'A');
|
||||
try expect(foo[11] == 'A');
|
||||
try expect(foo[19] == 'A');
|
||||
|
||||
// memset array to undefined, ABI size == 1
|
||||
@setRuntimeSafety(true);
|
||||
@memset(&foo, undefined);
|
||||
try expect(foo[0] == 0xaa);
|
||||
try expect(foo[11] == 0xaa);
|
||||
try expect(foo[19] == 0xaa);
|
||||
}
|
||||
|
||||
{
|
||||
// memset array to non-undefined, ABI size > 1
|
||||
var foo: [20]u32 = undefined;
|
||||
@@ -387,13 +378,6 @@ fn testMemsetArray() !void {
|
||||
try expect(foo[0] == 1234);
|
||||
try expect(foo[11] == 1234);
|
||||
try expect(foo[19] == 1234);
|
||||
|
||||
// memset array to undefined, ABI size > 1
|
||||
@setRuntimeSafety(true);
|
||||
@memset(&foo, undefined);
|
||||
try expect(foo[0] == 0xaaaaaaaa);
|
||||
try expect(foo[11] == 0xaaaaaaaa);
|
||||
try expect(foo[19] == 0xaaaaaaaa);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user