aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-11-04 16:04:31 +0200
committerGitHub <noreply@github.com>2022-11-04 16:04:31 +0200
commit8c4faa5f3f63cfbcfdc12cda7c37be1da642d2f6 (patch)
tree2a90fb00f39cb5eae5f8083e2b8462a2e198f918 /test/cases/compile_errors
parentea54c9a375ef8f419694b39b9f14f181fa0b82ee (diff)
parent577daab08cd2119604b5ee501e4bd8aeb2619668 (diff)
downloadzig-8c4faa5f3f63cfbcfdc12cda7c37be1da642d2f6.tar.gz
zig-8c4faa5f3f63cfbcfdc12cda7c37be1da642d2f6.zip
Merge pull request #13338 from Vexu/stage2-compile-errors
Improve some error messages
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig14
-rw-r--r--test/cases/compile_errors/double_pointer_to_anyopaque_pointer.zig28
-rw-r--r--test/cases/compile_errors/incorrect_pointer_dereference_syntax.zig11
3 files changed, 39 insertions, 14 deletions
diff --git a/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig b/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig
deleted file mode 100644
index 44ae18ae8a..0000000000
--- a/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig
+++ /dev/null
@@ -1,14 +0,0 @@
-export fn entry() void {
- var a: u32 = 1;
- var ptr: *align(@alignOf(u32)) anyopaque = &a;
- var b: *u32 = @ptrCast(*u32, ptr);
- var ptr2: *anyopaque = &b;
- _ = ptr2;
-}
-
-// error
-// backend=stage2
-// target=native
-//
-// :5:28: error: expected type '*anyopaque', found '**u32'
-// :5:28: note: pointer type child '*u32' cannot cast into pointer type child 'anyopaque'
diff --git a/test/cases/compile_errors/double_pointer_to_anyopaque_pointer.zig b/test/cases/compile_errors/double_pointer_to_anyopaque_pointer.zig
new file mode 100644
index 0000000000..6aa9618dbd
--- /dev/null
+++ b/test/cases/compile_errors/double_pointer_to_anyopaque_pointer.zig
@@ -0,0 +1,28 @@
+pub export fn entry1() void {
+ const x: usize = 5;
+
+ const ptr: *const anyopaque = &(&x);
+ _ = ptr;
+}
+pub export fn entry2() void {
+ var val: [*:0]u8 = undefined;
+ func(&val);
+}
+fn func(_: ?*anyopaque) void {}
+pub export fn entry3() void {
+ var x: *?*usize = undefined;
+
+ const ptr: *const anyopaque = x;
+ _ = ptr;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :4:35: error: expected type '*const anyopaque', found '*const *const usize'
+// :4:35: note: cannot implicitly cast double pointer '*const *const usize' to anyopaque pointer '*const anyopaque'
+// :9:10: error: expected type '?*anyopaque', found '*[*:0]u8'
+// :9:10: note: cannot implicitly cast double pointer '*[*:0]u8' to anyopaque pointer '?*anyopaque'
+// :15:35: error: expected type '*const anyopaque', found '*?*usize'
+// :15:35: note: cannot implicitly cast double pointer '*?*usize' to anyopaque pointer '*const anyopaque'
diff --git a/test/cases/compile_errors/incorrect_pointer_dereference_syntax.zig b/test/cases/compile_errors/incorrect_pointer_dereference_syntax.zig
new file mode 100644
index 0000000000..33b5d1f3b6
--- /dev/null
+++ b/test/cases/compile_errors/incorrect_pointer_dereference_syntax.zig
@@ -0,0 +1,11 @@
+pub export fn entry() void {
+ var a: *u32 = undefined;
+ _ = *a;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :3:10: error: expected type 'type', found '*u32'
+// :3:10: note: use '.*' to dereference pointer