diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-02-12 01:38:11 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-02-12 01:38:11 -0500 |
| commit | 6f05e8d1be083a429673e717e8b3c736c7ddb8d2 (patch) | |
| tree | 3b4004ef1afaab617282b33eff3a4a45729c0f23 /test | |
| parent | 285e2f62ba0648d6d8e7ff64d1ee7d2900481e2f (diff) | |
| download | zig-6f05e8d1be083a429673e717e8b3c736c7ddb8d2.tar.gz zig-6f05e8d1be083a429673e717e8b3c736c7ddb8d2.zip | |
implicit casting between C pointer and optional non-C pointer
See #1059
Diffstat (limited to 'test')
| -rw-r--r-- | test/stage1/behavior/pointers.zig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/stage1/behavior/pointers.zig b/test/stage1/behavior/pointers.zig index 3f62bd1cec..8d87fe2a20 100644 --- a/test/stage1/behavior/pointers.zig +++ b/test/stage1/behavior/pointers.zig @@ -97,3 +97,13 @@ test "peer type resolution with C pointers" { expect(@typeOf(x3) == [*c]u8); expect(@typeOf(x4) == [*c]u8); } + +test "implicit casting between C pointer and optional non-C pointer" { + var slice: []const u8 = "aoeu"; + const opt_many_ptr: ?[*]const u8 = slice.ptr; + var ptr_opt_many_ptr = &opt_many_ptr; + var c_ptr: [*c]const [*c]const u8 = ptr_opt_many_ptr; + expect(c_ptr.*.* == 'a'); + ptr_opt_many_ptr = c_ptr; + expect(ptr_opt_many_ptr.*.?[1] == 'o'); +} |
