| ... | ... | @@ -2,6 +2,32 @@ const tests = @import("tests.zig"); |
| 2 | 2 | const std = @import("std"); |
| 3 | 3 | |
| 4 | 4 | pub fn addCases(cases: *tests.CompileErrorContext) void { |
| 5 | cases.addTest("@alignCast of zero sized types", |
| 6 | \\export fn foo() void { |
| 7 | \\ const a: *void = undefined; |
| 8 | \\ _ = @alignCast(2, a); |
| 9 | \\} |
| 10 | \\export fn bar() void { |
| 11 | \\ const a: ?*void = undefined; |
| 12 | \\ _ = @alignCast(2, a); |
| 13 | \\} |
| 14 | \\export fn baz() void { |
| 15 | \\ const a: []void = undefined; |
| 16 | \\ _ = @alignCast(2, a); |
| 17 | \\} |
| 18 | \\export fn qux() void { |
| 19 | \\ const a = struct { |
| 20 | \\ fn a(comptime b: u32) void {} |
| 21 | \\ }.a; |
| 22 | \\ _ = @alignCast(2, a); |
| 23 | \\} |
| 24 | , &[_][]const u8{ |
| 25 | "tmp.zig:3:23: error: cannot adjust alignment of zero sized type '*void'", |
| 26 | "tmp.zig:7:23: error: cannot adjust alignment of zero sized type '?*void'", |
| 27 | "tmp.zig:11:23: error: cannot adjust alignment of zero sized type '[]void'", |
| 28 | "tmp.zig:17:23: error: cannot adjust alignment of zero sized type 'fn(u32) anytype'", |
| 29 | }); |
| 30 | |
| 5 | 31 | cases.addTest("invalid pointer with @Type", |
| 6 | 32 | \\export fn entry() void { |
| 7 | 33 | \\ _ = @Type(.{ .Pointer = .{ |