diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-04 16:04:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-04 16:04:31 +0200 |
| commit | 8c4faa5f3f63cfbcfdc12cda7c37be1da642d2f6 (patch) | |
| tree | 2a90fb00f39cb5eae5f8083e2b8462a2e198f918 /test/cases/compile_errors | |
| parent | ea54c9a375ef8f419694b39b9f14f181fa0b82ee (diff) | |
| parent | 577daab08cd2119604b5ee501e4bd8aeb2619668 (diff) | |
| download | zig-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')
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 |
