aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2023-08-21 02:07:40 +0100
committerAndrew Kelley <andrew@ziglang.org>2023-08-21 11:31:22 -0700
commit6a5463951f0aa11cbdd5575cc78e85cd2ed10b46 (patch)
tree9cff18509ff5a08748755d5dd57cc015a1a304a1 /test/cases/compile_errors
parent82c8e45a7e7659146b2ecda2929f01027b0658e4 (diff)
downloadzig-6a5463951f0aa11cbdd5575cc78e85cd2ed10b46.tar.gz
zig-6a5463951f0aa11cbdd5575cc78e85cd2ed10b46.zip
Sema: disallow C pointer to slice coercion
Resolves: #16719
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/ptr_coerced_to_slice.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/cases/compile_errors/ptr_coerced_to_slice.zig b/test/cases/compile_errors/ptr_coerced_to_slice.zig
new file mode 100644
index 0000000000..2b96f83064
--- /dev/null
+++ b/test/cases/compile_errors/ptr_coerced_to_slice.zig
@@ -0,0 +1,20 @@
+export fn foo() void {
+ const ptr: [*]const u8 = "abc";
+ _ = @as([]const u8, ptr);
+}
+export fn bar() void {
+ const ptr: [*c]const u8 = "def";
+ _ = @as([]const u8, ptr);
+}
+export fn baz() void {
+ const ptr: *const u8 = &@as(u8, 123);
+ _ = @as([]const u8, ptr);
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :3:25: error: expected type '[]const u8', found '[*]const u8'
+// :7:25: error: expected type '[]const u8', found '[*c]const u8'
+// :11:25: error: expected type '[]const u8', found '*const u8'