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