| ... | ... | @@ -69,6 +69,27 @@ fn testMemcpyDestManyPtr() !void { |
| 69 | 69 | try expect(buf[4] == 'o'); |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | test "@memcpy C pointer" { |
| 73 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 74 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 75 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| 76 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 77 | |
| 78 | try testMemcpyCPointer(); |
| 79 | try comptime testMemcpyCPointer(); |
| 80 | } |
| 81 | |
| 82 | fn testMemcpyCPointer() !void { |
| 83 | const src = "hello"; |
| 84 | var buf: [5]u8 = undefined; |
| 85 | @memcpy(@as([*c]u8, &buf), src); |
| 86 | try expect(buf[0] == 'h'); |
| 87 | try expect(buf[1] == 'e'); |
| 88 | try expect(buf[2] == 'l'); |
| 89 | try expect(buf[3] == 'l'); |
| 90 | try expect(buf[4] == 'o'); |
| 91 | } |
| 92 | |
| 72 | 93 | test "@memcpy slice" { |
| 73 | 94 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 74 | 95 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |