diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-10-13 17:53:28 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-10-13 17:53:28 -0700 |
| commit | df7d6d263e4ad6adb302856235641ae9ceb142b6 (patch) | |
| tree | 186182733c89cec8fa990a681ab8e6f915d15908 /test/behavior/basic.zig | |
| parent | da7fcfd1586fa93c3d00815f60030e00ea583701 (diff) | |
| download | zig-df7d6d263e4ad6adb302856235641ae9ceb142b6.tar.gz zig-df7d6d263e4ad6adb302856235641ae9ceb142b6.zip | |
stage2: implement opaque declarations
* Module: implement opaque type namespace lookup
* Add `Type.type` for convenience
* Sema: fix `validateVarType` for pointer-to-opaque
* x86_64 ABI: implement support for pointers
* LLVM backend: fix lowering of opaque types
* Type: implement equality checking for opaques
Diffstat (limited to 'test/behavior/basic.zig')
| -rw-r--r-- | test/behavior/basic.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index f6876e29ad..63a3ad9eb6 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -188,3 +188,15 @@ fn testMemcpyMemset() !void { try expect(bar[11] == 'A'); try expect(bar[19] == 'A'); } + +const OpaqueA = opaque {}; +const OpaqueB = opaque {}; + +test "variable is allowed to be a pointer to an opaque type" { + var x: i32 = 1234; + _ = hereIsAnOpaqueType(@ptrCast(*OpaqueA, &x)); +} +fn hereIsAnOpaqueType(ptr: *OpaqueA) *OpaqueA { + var a = ptr; + return a; +} |
