diff options
| author | Jimmi HC <jimmiholstchristensen@gmail.com> | 2019-01-06 17:58:00 +0100 |
|---|---|---|
| committer | Jimmi HC <jimmiholstchristensen@gmail.com> | 2019-01-06 17:58:00 +0100 |
| commit | 97702988d1783db6840c642809a41d8f176bb500 (patch) | |
| tree | 882c7937a48b016add655ca25f0576a8c5e346d5 | |
| parent | 55e95daf543a27961fe9ca7a998d3cbd25d2973b (diff) | |
| download | zig-97702988d1783db6840c642809a41d8f176bb500.tar.gz zig-97702988d1783db6840c642809a41d8f176bb500.zip | |
Added test case
| -rw-r--r-- | test/cases/ptrcast.zig | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/cases/ptrcast.zig b/test/cases/ptrcast.zig index 6f0e6e5946..54c3dda849 100644 --- a/test/cases/ptrcast.zig +++ b/test/cases/ptrcast.zig @@ -34,3 +34,19 @@ fn testReinterpretBytesAsExternStruct() void { var val = ptr.c; assertOrPanic(val == 5); } + +test "reinterpret struct field at comptime" { + const numLittle = comptime Bytes.init(0x12345678); + assertOrPanic(std.mem.eql(u8, []u8{ 0x78, 0x56, 0x34, 0x12 }, numLittle.bytes)); +} + +const Bytes = struct { + bytes: [4]u8, + + pub fn init(v: u32) Bytes { + var res: Bytes = undefined; + @ptrCast(*align(1) u32, &res.bytes).* = v; + + return res; + } +}; |
