aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/basic.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-04-26 12:49:32 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-04-28 13:24:42 -0700
commit00b690540e561391d17c65e45f818db6be8fecec (patch)
tree8e1018f7e4824ef36bba99d5defd1f291b4a5c1e /test/behavior/basic.zig
parentfd6200eda6d4fe19c34a59430a88a9ce38d6d7a4 (diff)
downloadzig-00b690540e561391d17c65e45f818db6be8fecec.tar.gz
zig-00b690540e561391d17c65e45f818db6be8fecec.zip
llvm backend: fix lowering of memset
The bitcast of ABI size 1 elements was problematic for some types.
Diffstat (limited to 'test/behavior/basic.zig')
-rw-r--r--test/behavior/basic.zig90
1 files changed, 0 insertions, 90 deletions
diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig
index 06b1fdda64..437b1b1373 100644
--- a/test/behavior/basic.zig
+++ b/test/behavior/basic.zig
@@ -353,96 +353,6 @@ fn f2(x: bool) []const u8 {
return (if (x) &fA else &fB)();
}
-test "@memset on array pointers" {
- if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_wasm) {
- // TODO: implement memset when element ABI size > 1
- return error.SkipZigTest;
- }
-
- try testMemsetArray();
- try comptime testMemsetArray();
-}
-
-fn testMemsetArray() !void {
- {
- // memset array to non-undefined, ABI size == 1
- var foo: [20]u8 = undefined;
- @memset(&foo, 'A');
- try expect(foo[0] == 'A');
- try expect(foo[11] == 'A');
- try expect(foo[19] == 'A');
- }
- {
- // memset array to non-undefined, ABI size > 1
- var foo: [20]u32 = undefined;
- @memset(&foo, 1234);
- try expect(foo[0] == 1234);
- try expect(foo[11] == 1234);
- try expect(foo[19] == 1234);
- }
-}
-
-test "@memset on slices" {
- if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_wasm) {
- // TODO: implement memset when element ABI size > 1
- // TODO: implement memset on slices
- return error.SkipZigTest;
- }
-
- try testMemsetSlice();
- try comptime testMemsetSlice();
-}
-
-fn testMemsetSlice() !void {
- {
- // memset slice to non-undefined, ABI size == 1
- var array: [20]u8 = undefined;
- var len = array.len;
- var slice = array[0..len];
- @memset(slice, 'A');
- try expect(slice[0] == 'A');
- try expect(slice[11] == 'A');
- try expect(slice[19] == 'A');
- }
- {
- // memset slice to non-undefined, ABI size > 1
- var array: [20]u32 = undefined;
- var len = array.len;
- var slice = array[0..len];
- @memset(slice, 1234);
- try expect(slice[0] == 1234);
- try expect(slice[11] == 1234);
- try expect(slice[19] == 1234);
- }
-}
-
-test "memcpy and memset intrinsics" {
- if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
- if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
-
- try testMemcpyMemset();
- try comptime testMemcpyMemset();
-}
-
-fn testMemcpyMemset() !void {
- var foo: [20]u8 = undefined;
- var bar: [20]u8 = undefined;
-
- @memset(&foo, 'A');
- @memcpy(&bar, &foo);
-
- try expect(bar[0] == 'A');
- try expect(bar[11] == 'A');
- try expect(bar[19] == 'A');
-}
-
test "variable is allowed to be a pointer to an opaque type" {
var x: i32 = 1234;
_ = hereIsAnOpaqueType(@ptrCast(*OpaqueA, &x));