authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-14 18:12:15-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-15 14:40:45-04:00
log9f4408d68b4f3d0f8d80ed6a81d554da6efba058
tree2b7f0b4f5ccc27e4c2b95bac9847a4fc3f6606b4
parentafba53f0f168365a9540a8c8bb39e85a44e0249c

organize some compile error tests

Many of these tests check for the incorrect behavior of stage1 whereas self-hosted correctly does not emit an error, so they are simply deleted. The remaining number of test cases within the stage1/ subdirectory is reduced from 143 to 103.

53 files changed, 144 insertions(+), 433 deletions(-)

test/cases/compile_errors/catch_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: anyerror!bool = undefined;
3 _ = a catch false;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:11: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/div_assign_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 a /= a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/div_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a / a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:13: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/enum_field_value_references_enum.zig created+16
......@@ -0,0 +1,16 @@
1pub const Foo = enum(c_int) {
2 A = Foo.B,
3 C = D,
4};
5export fn entry() void {
6 var s: Foo = Foo.E;
7 _ = s;
8}
9const D = 1;
10
11// error
12// backend=stage2
13// target=native
14//
15// :1:5: error: dependency loop detected
16// :2:9: note: referenced here
test/cases/compile_errors/implicit_cast_from_f64_to_f32.zig created+18
......@@ -0,0 +1,18 @@
1var x: f64 = 1.0;
2var y: f32 = x;
3
4export fn entry() void {
5 _ = y;
6}
7export fn entry2() void {
8 var x1: f64 = 1.0;
9 var y2: f32 = x1;
10 _ = y2;
11}
12
13// error
14// backend=llvm
15// target=native
16//
17// :2:14: error: cannot load runtime value in comptime block
18// :9:19: error: expected type 'f32', found 'f64'
test/cases/compile_errors/mod_assign_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 a %= a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/mod_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a % a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/mult_assign_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 a *= a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/mult_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a * a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:13: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/negate_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 _ = -a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/orelse_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: ?bool = undefined;
3 _ = a orelse false;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:11: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/add_wrap_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a +%= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/add_wrap_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a +% a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/alignCast_of_zero_sized_types.zig deleted-27
......@@ -1,27 +0,0 @@
1export fn foo() void {
2 const a: *void = undefined;
3 _ = @alignCast(2, a);
4}
5export fn bar() void {
6 const a: ?*void = undefined;
7 _ = @alignCast(2, a);
8}
9export fn baz() void {
10 const a: []void = undefined;
11 _ = @alignCast(2, a);
12}
13export fn qux() void {
14 const a = struct {
15 fn a(comptime b: u32) void { _ = b; }
16 }.a;
17 _ = @alignCast(2, a);
18}
19
20// error
21// backend=stage1
22// target=native
23//
24// tmp.zig:3:23: error: cannot adjust alignment of zero sized type '*void'
25// tmp.zig:7:23: error: cannot adjust alignment of zero sized type '?*void'
26// tmp.zig:11:23: error: cannot adjust alignment of zero sized type '[]void'
27// tmp.zig:17:23: error: cannot adjust alignment of zero sized type 'fn(u32) anytype'
test/cases/compile_errors/stage1/aligned_variable_of_zero-bit_type.zig deleted-10
......@@ -1,10 +0,0 @@
1export fn f() void {
2 var s: struct {} align(4) = undefined;
3 _ = s;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:2:5: error: variable 's' of zero-bit type 'struct:2:12' has no in-memory representation, it cannot be aligned
test/cases/compile_errors/stage1/bin_and_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a &= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bin_and_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a & a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bin_not_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = ~a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bin_or_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a |= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bin_or_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a | a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bin_xor_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a ^= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bin_xor_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a ^ a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/bool_not_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: bool = undefined;
3 _ = !a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/catch_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: anyerror!bool = undefined;
3 _ = a catch false;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:11: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/div_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a /= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/div_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a / a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/implicit_cast_from_f64_to_f32.zig deleted-10
......@@ -1,10 +0,0 @@
1var x: f64 = 1.0;
2var y: f32 = x;
3
4export fn entry() usize { return @sizeOf(@TypeOf(y)); }
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:2:14: error: expected type 'f32', found 'f64'
test/cases/compile_errors/stage1/int_to_ptr_of_0_bits.zig deleted-11
......@@ -1,11 +0,0 @@
1export fn foo() void {
2 var x: usize = 0x1000;
3 var y: *void = @intToPtr(*void, x);
4 _ = y;
5}
6
7// error
8// backend=stage1
9// target=native
10//
11// tmp.zig:3:30: error: type '*void' has 0 bits and cannot store information
test/cases/compile_errors/stage1/mod_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a %= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/mod_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a % a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/mult_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a *= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/mult_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a * a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/mult_wrap_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a *%= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/mult_wrap_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a *% a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/negate_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = -a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/negate_wrap_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = -%a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:11: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/non_compile_time_array_concatenation.zig deleted-11
......@@ -1,11 +0,0 @@
1fn f() []u8 {
2 return s ++ "foo";
3}
4var s: [10]u8 = undefined;
5export fn entry() usize { return @sizeOf(@TypeOf(f)); }
6
7// error
8// backend=stage1
9// target=native
10//
11// tmp.zig:2:12: error: unable to evaluate constant expression
test/cases/compile_errors/stage1/obj/enum_field_value_references_enum.zig deleted-15
......@@ -1,15 +0,0 @@
1pub const Foo = enum(c_int) {
2 A = Foo.B,
3 C = D,
4};
5export fn entry() void {
6 var s: Foo = Foo.E;
7 _ = s;
8}
9const D = 1;
10
11// error
12// backend=stage1
13// target=native
14//
15// tmp.zig:1:17: error: enum 'Foo' depends on itself
test/cases/compile_errors/stage1/optional_pointer_to_void_in_extern_struct.zig deleted-14
......@@ -1,14 +0,0 @@
1const Foo = extern struct {
2 x: ?*const void,
3};
4const Bar = extern struct {
5 foo: Foo,
6 y: i32,
7};
8export fn entry(bar: *Bar) void {_ = bar;}
9
10// error
11// backend=stage1
12// target=native
13//
14// tmp.zig:2:5: error: extern structs cannot contain fields of type '?*const void'
test/cases/compile_errors/stage1/orelse_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: ?bool = undefined;
3 _ = a orelse false;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:11: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/ptrCast_a_0_bit_type_to_a_non-_0_bit_type.zig deleted-13
......@@ -1,13 +0,0 @@
1export fn entry() bool {
2 var x: u0 = 0;
3 const p = @ptrCast(?*u0, &x);
4 return p == null;
5}
6
7// error
8// backend=stage1
9// target=native
10//
11// tmp.zig:3:15: error: '*u0' and '?*u0' do not have the same in-memory representation
12// tmp.zig:3:31: note: '*u0' has no in-memory bits
13// tmp.zig:3:24: note: '?*u0' has in-memory bits
test/cases/compile_errors/stage1/recursive_inferred_error_set.zig deleted-12
......@@ -1,12 +0,0 @@
1export fn entry() void {
2 foo() catch unreachable;
3}
4fn foo() !void {
5 try foo();
6}
7
8// error
9// backend=stage1
10// target=native
11//
12// tmp.zig:5:5: error: cannot resolve inferred error set '@typeInfo(@typeInfo(@TypeOf(foo)).Fn.return_type.?).ErrorUnion.error_set': function 'foo' not fully analyzed yet
test/cases/compile_errors/stage1/shift_left_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a >>= 2;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/shift_left_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a << 2;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/shift_right_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a >>= 2;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/shift_right_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a >> 2;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/sub_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a -= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/sub_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a - a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/sub_wrap_assign_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 a -%= a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:5: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/sub_wrap_on_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a -% a;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:3:9: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/stage1/truncate_undefined_value.zig deleted-10
......@@ -1,10 +0,0 @@
1export fn entry() void {
2 var z = @truncate(u8, @as(u16, undefined));
3 _ = z;
4}
5
6// error
7// backend=stage1
8// target=native
9//
10// tmp.zig:2:27: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/sub_assign_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 a -= a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:10: error: use of undefined value here causes undefined behavior
test/cases/compile_errors/sub_on_undefined_value.zig created+10
......@@ -0,0 +1,10 @@
1comptime {
2 var a: i64 = undefined;
3 _ = a - a;
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:13: error: use of undefined value here causes undefined behavior