diff options
Diffstat (limited to 'test/behavior/pointers.zig')
| -rw-r--r-- | test/behavior/pointers.zig | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/test/behavior/pointers.zig b/test/behavior/pointers.zig index f6caa3c76e..a0564fcaa0 100644 --- a/test/behavior/pointers.zig +++ b/test/behavior/pointers.zig @@ -419,7 +419,6 @@ test "pointer sentinel with enums" { } test "pointer sentinel with optional element" { - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; @@ -779,3 +778,11 @@ test "pointers to elements of many-ptr to zero-bit type" { try expect(a == b); } + +test "comptime C pointer to optional pointer" { + const opt: ?*u8 = @ptrFromInt(0x1000); + const outer_ptr: [*c]const ?*u8 = &opt; + const inner_ptr = &outer_ptr.*.?; + comptime assert(@TypeOf(inner_ptr) == [*c]const *u8); + comptime assert(@intFromPtr(inner_ptr.*) == 0x1000); +} |
