aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/basic.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-10-13 17:53:28 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-10-13 17:53:28 -0700
commitdf7d6d263e4ad6adb302856235641ae9ceb142b6 (patch)
tree186182733c89cec8fa990a681ab8e6f915d15908 /test/behavior/basic.zig
parentda7fcfd1586fa93c3d00815f60030e00ea583701 (diff)
downloadzig-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.zig12
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;
+}