aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/pointers.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/behavior/pointers.zig')
-rw-r--r--test/behavior/pointers.zig9
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);
+}