aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-08-04 14:24:00 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-08-04 14:24:00 -0700
commitba70eee8bb81da0d44982a84395aee660635e5ba (patch)
tree40f4ef036ab60572f9b19e94dc84415993ed3fa8 /test/cases/compile_errors
parenta3045b8abbba896da34a02266f2be89dd6c90ecc (diff)
parent616f65df750f53e6334cc5ed2c8f4b5668d573f2 (diff)
downloadzig-ba70eee8bb81da0d44982a84395aee660635e5ba.tar.gz
zig-ba70eee8bb81da0d44982a84395aee660635e5ba.zip
Merge remote-tracking branch 'origin/master' into llvm15
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig (renamed from test/cases/compile_errors/stage1/obj/accessing_runtime_parameter_from_outer_function.zig)9
-rw-r--r--test/cases/compile_errors/bitCast_to_enum_type.zig2
-rw-r--r--test/cases/compile_errors/cannot_break_out_of_defer_expression.zig (renamed from test/cases/compile_errors/stage1/obj/cannot_break_out_of_defer_expression.zig)5
-rw-r--r--test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig (renamed from test/cases/compile_errors/stage1/obj/cannot_continue_out_of_defer_expression.zig)5
-rw-r--r--test/cases/compile_errors/direct_struct_loop.zig9
-rw-r--r--test/cases/compile_errors/for_loop_body_expression_ignored.zig35
-rw-r--r--test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig (renamed from test/cases/compile_errors/stage1/obj/global_variable_alignment_non_power_of_2.zig)4
-rw-r--r--test/cases/compile_errors/indirect_struct_loop.zig13
-rw-r--r--test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig (renamed from test/cases/compile_errors/stage1/obj/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig)5
-rw-r--r--test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig16
-rw-r--r--test/cases/compile_errors/intToPtr_with_misaligned_address.zig10
-rw-r--r--test/cases/compile_errors/issue_3818_bitcast_from_parray-slice_to_u16.zig (renamed from test/cases/compile_errors/stage1/obj/issue_3818_bitcast_from_parray-slice_to_u16.zig)8
-rw-r--r--test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig84
-rw-r--r--test/cases/compile_errors/packed_union_given_enum_tag_type.zig (renamed from test/cases/compile_errors/stage1/obj/packed_union_given_enum_tag_type.zig)4
-rw-r--r--test/cases/compile_errors/packed_union_with_automatic_layout_field.zig (renamed from test/cases/compile_errors/stage1/obj/packed_union_with_automatic_layout_field.zig)6
-rw-r--r--test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig2
-rw-r--r--test/cases/compile_errors/specify_non-integer_enum_tag_type.zig (renamed from test/cases/compile_errors/stage1/obj/specify_non-integer_enum_tag_type.zig)4
-rw-r--r--test/cases/compile_errors/src_outside_function.zig9
-rw-r--r--test/cases/compile_errors/stage1/obj/direct_struct_loop.zig8
-rw-r--r--test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig18
-rw-r--r--test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig10
-rw-r--r--test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig10
-rw-r--r--test/cases/compile_errors/stage1/obj/src_outside_function.zig9
-rw-r--r--test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig22
-rw-r--r--test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig74
-rw-r--r--test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig (renamed from test/cases/compile_errors/stage1/obj/struct_depends_on_itself_via_optional_field.zig)8
-rw-r--r--test/cases/compile_errors/top_level_decl_dependency_loop.zig (renamed from test/cases/compile_errors/stage1/obj/top_level_decl_dependency_loop.zig)5
-rw-r--r--test/cases/compile_errors/type_variables_must_be_constant.zig4
-rw-r--r--test/cases/compile_errors/unused_variable_error_on_errdefer.zig (renamed from test/cases/compile_errors/stage1/obj/unused_variable_error_on_errdefer.zig)4
-rw-r--r--test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig4
-rw-r--r--test/cases/compile_errors/usingnamespace_with_wrong_type.zig2
-rw-r--r--test/cases/compile_errors/vector_index_out_of_bounds.zig (renamed from test/cases/compile_errors/stage1/obj/vector_index_out_of_bounds.zig)4
-rw-r--r--test/cases/compile_errors/while_expected_error_union_got_bool.zig (renamed from test/cases/compile_errors/stage1/obj/while_expected_error_union_got_bool.zig)4
-rw-r--r--test/cases/compile_errors/while_expected_error_union_got_optional.zig (renamed from test/cases/compile_errors/stage1/obj/while_expected_error_union_got_optional.zig)4
-rw-r--r--test/cases/compile_errors/while_expected_optional_got_bool.zig (renamed from test/cases/compile_errors/stage1/obj/while_expected_optional_got_bool.zig)4
-rw-r--r--test/cases/compile_errors/while_expected_optional_got_error_union.zig (renamed from test/cases/compile_errors/stage1/obj/while_expected_optional_got_error_union.zig)4
-rw-r--r--test/cases/compile_errors/while_loop_body_expression_ignored.zig43
37 files changed, 273 insertions, 198 deletions
diff --git a/test/cases/compile_errors/stage1/obj/accessing_runtime_parameter_from_outer_function.zig b/test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig
index 73a9e94d44..49ef3b4d4d 100644
--- a/test/cases/compile_errors/stage1/obj/accessing_runtime_parameter_from_outer_function.zig
+++ b/test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig
@@ -1,4 +1,4 @@
-fn outer(y: u32) fn (u32) u32 {
+fn outer(y: u32) *const fn (u32) u32 {
const st = struct {
fn get(z: u32) u32 {
return z + y;
@@ -13,9 +13,8 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:4:24: error: 'y' not accessible from inner function
-// tmp.zig:3:28: note: crossed function definition here
-// tmp.zig:1:10: note: declared here
+// :4:24: error: 'y' not accessible from inner function
+// :3:9: note: crossed function definition here
diff --git a/test/cases/compile_errors/bitCast_to_enum_type.zig b/test/cases/compile_errors/bitCast_to_enum_type.zig
index add531627f..a8fedb7d54 100644
--- a/test/cases/compile_errors/bitCast_to_enum_type.zig
+++ b/test/cases/compile_errors/bitCast_to_enum_type.zig
@@ -9,4 +9,4 @@ export fn entry() void {
// target=native
//
// :3:24: error: cannot @bitCast to 'tmp.entry.E'
-// :3:24: note: use @intToEnum for type coercion
+// :3:24: note: use @intToEnum to cast from 'u32'
diff --git a/test/cases/compile_errors/stage1/obj/cannot_break_out_of_defer_expression.zig b/test/cases/compile_errors/cannot_break_out_of_defer_expression.zig
index 3c7ae4fa2f..454309eb89 100644
--- a/test/cases/compile_errors/stage1/obj/cannot_break_out_of_defer_expression.zig
+++ b/test/cases/compile_errors/cannot_break_out_of_defer_expression.zig
@@ -7,7 +7,8 @@ export fn foo() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:4:13: error: cannot break out of defer expression
+// :4:13: error: cannot break out of defer expression
+// :3:9: note: defer expression here
diff --git a/test/cases/compile_errors/stage1/obj/cannot_continue_out_of_defer_expression.zig b/test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig
index 56b8ced05b..74d11528eb 100644
--- a/test/cases/compile_errors/stage1/obj/cannot_continue_out_of_defer_expression.zig
+++ b/test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig
@@ -7,7 +7,8 @@ export fn foo() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:4:13: error: cannot continue out of defer expression
+// :4:13: error: cannot continue out of defer expression
+// :3:9: note: defer expression here
diff --git a/test/cases/compile_errors/direct_struct_loop.zig b/test/cases/compile_errors/direct_struct_loop.zig
new file mode 100644
index 0000000000..0abc1a4f73
--- /dev/null
+++ b/test/cases/compile_errors/direct_struct_loop.zig
@@ -0,0 +1,9 @@
+const A = struct { a : A, };
+export fn entry() usize { return @sizeOf(A); }
+
+// error
+// backend=stage2
+// target=native
+//
+// :1:11: error: struct 'tmp.A' depends on itself
+// :1:20: note: while checking this field
diff --git a/test/cases/compile_errors/for_loop_body_expression_ignored.zig b/test/cases/compile_errors/for_loop_body_expression_ignored.zig
new file mode 100644
index 0000000000..3ce73a9fab
--- /dev/null
+++ b/test/cases/compile_errors/for_loop_body_expression_ignored.zig
@@ -0,0 +1,35 @@
+fn returns() usize {
+ return 2;
+}
+export fn f1() void {
+ for ("hello") |_| returns();
+}
+export fn f2() void {
+ var x: anyerror!i32 = error.Bad;
+ for ("hello") |_| returns() else unreachable;
+ _ = x;
+}
+export fn f3() void {
+ for ("hello") |_| {} else true;
+}
+export fn f4() void {
+ const foo = for ("hello") |_| returns() else true;
+ _ = foo;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :5:30: error: value of type 'usize' ignored
+// :5:30: note: all non-void values must be used
+// :5:30: note: this error can be suppressed by assigning the value to '_'
+// :9:30: error: value of type 'usize' ignored
+// :9:30: note: all non-void values must be used
+// :9:30: note: this error can be suppressed by assigning the value to '_'
+// :13:31: error: value of type 'bool' ignored
+// :13:31: note: all non-void values must be used
+// :13:31: note: this error can be suppressed by assigning the value to '_'
+// :16:42: error: value of type 'usize' ignored
+// :16:42: note: all non-void values must be used
+// :16:42: note: this error can be suppressed by assigning the value to '_'
diff --git a/test/cases/compile_errors/stage1/obj/global_variable_alignment_non_power_of_2.zig b/test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig
index f23f340b16..b88d8aaf70 100644
--- a/test/cases/compile_errors/stage1/obj/global_variable_alignment_non_power_of_2.zig
+++ b/test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig
@@ -2,7 +2,7 @@ const some_data: [100]u8 align(3) = undefined;
export fn entry() usize { return @sizeOf(@TypeOf(some_data)); }
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:1:32: error: alignment value 3 is not a power of 2
+// :1:32: error: alignment value '3' is not a power of two
diff --git a/test/cases/compile_errors/indirect_struct_loop.zig b/test/cases/compile_errors/indirect_struct_loop.zig
new file mode 100644
index 0000000000..dca2b9c3f6
--- /dev/null
+++ b/test/cases/compile_errors/indirect_struct_loop.zig
@@ -0,0 +1,13 @@
+const A = struct { b : B, };
+const B = struct { c : C, };
+const C = struct { a : A, };
+export fn entry() usize { return @sizeOf(A); }
+
+// error
+// backend=stage2
+// target=native
+//
+// :1:11: error: struct 'tmp.A' depends on itself
+// :3:20: note: while checking this field
+// :2:20: note: while checking this field
+// :1:20: note: while checking this field
diff --git a/test/cases/compile_errors/stage1/obj/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig
index dd6909b1c2..74cafabe7c 100644
--- a/test/cases/compile_errors/stage1/obj/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig
+++ b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig
@@ -9,7 +9,8 @@ export fn entry() usize {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:1:13: error: struct 'Foo' depends on itself
+// :1:13: error: struct 'tmp.Foo' depends on itself
+// :2:5: note: while checking this field
diff --git a/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig
new file mode 100644
index 0000000000..6030ca4d3e
--- /dev/null
+++ b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig
@@ -0,0 +1,16 @@
+const Foo = union {
+ x: Foo,
+};
+
+var foo: Foo = undefined;
+
+export fn entry() usize {
+ return @sizeOf(@TypeOf(foo.x));
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :1:13: error: union 'tmp.Foo' depends on itself
+// :2:5: note: while checking this field
diff --git a/test/cases/compile_errors/intToPtr_with_misaligned_address.zig b/test/cases/compile_errors/intToPtr_with_misaligned_address.zig
new file mode 100644
index 0000000000..43f89ab3b5
--- /dev/null
+++ b/test/cases/compile_errors/intToPtr_with_misaligned_address.zig
@@ -0,0 +1,10 @@
+pub export fn entry() void {
+ var y = @intToPtr([*]align(4) u8, 5);
+ _ = y;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:39: error: pointer type '[*]align(4) u8' requires aligned address
diff --git a/test/cases/compile_errors/stage1/obj/issue_3818_bitcast_from_parray-slice_to_u16.zig b/test/cases/compile_errors/issue_3818_bitcast_from_parray-slice_to_u16.zig
index cdc1def677..874f015ffb 100644
--- a/test/cases/compile_errors/stage1/obj/issue_3818_bitcast_from_parray-slice_to_u16.zig
+++ b/test/cases/compile_errors/issue_3818_bitcast_from_parray-slice_to_u16.zig
@@ -10,8 +10,10 @@ export fn foo2() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:3:42: error: unable to @bitCast from pointer type '*[2]u8'
-// tmp.zig:8:32: error: destination type 'u16' has size 2 but source type '[]const u8' has size 16
+// :3:42: error: cannot @bitCast from '*[2]u8'
+// :3:42: note: use @ptrToInt to cast to 'u16'
+// :8:37: error: cannot @bitCast from '[]const u8'
+// :8:37: note: use @ptrToInt to cast to 'u16'
diff --git a/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig b/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig
new file mode 100644
index 0000000000..8fcd300629
--- /dev/null
+++ b/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig
@@ -0,0 +1,84 @@
+export fn entry1() void {
+ _ = @sizeOf(packed struct {
+ x: anyerror,
+ });
+}
+export fn entry2() void {
+ _ = @sizeOf(packed struct {
+ x: [2]u24,
+ });
+}
+export fn entry3() void {
+ _ = @sizeOf(packed struct {
+ x: anyerror!u32,
+ });
+}
+export fn entry4() void {
+ _ = @sizeOf(packed struct {
+ x: S,
+ });
+}
+export fn entry5() void {
+ _ = @sizeOf(packed struct {
+ x: U,
+ });
+}
+export fn entry6() void {
+ _ = @sizeOf(packed struct {
+ x: ?anyerror,
+ });
+}
+export fn entry7() void {
+ _ = @sizeOf(packed struct {
+ x: enum { A, B },
+ });
+}
+export fn entry8() void {
+ _ = @sizeOf(packed struct {
+ x: fn () void,
+ });
+}
+export fn entry9() void {
+ _ = @sizeOf(packed struct {
+ x: *const fn () void,
+ });
+}
+export fn entry10() void {
+ _ = @sizeOf(packed struct {
+ x: packed struct { x: i32 },
+ });
+}
+export fn entry11() void {
+ _ = @sizeOf(packed struct {
+ x: packed union { A: i32, B: u32 },
+ });
+}
+const S = struct {
+ x: i32,
+};
+const U = extern union {
+ A: i32,
+ B: u32,
+};
+
+// error
+// backend=llvm
+// target=native
+//
+// :3:9: error: packed structs cannot contain fields of type 'anyerror'
+// :3:9: note: type has no guaranteed in-memory representation
+// :8:9: error: packed structs cannot contain fields of type '[2]u24'
+// :8:9: note: type has no guaranteed in-memory representation
+// :13:9: error: packed structs cannot contain fields of type 'anyerror!u32'
+// :13:9: note: type has no guaranteed in-memory representation
+// :18:9: error: packed structs cannot contain fields of type 'tmp.S'
+// :18:9: note: only packed structs layout are allowed in packed types
+// :56:11: note: struct declared here
+// :23:9: error: packed structs cannot contain fields of type 'tmp.U'
+// :23:9: note: only packed unions layout are allowed in packed types
+// :59:18: note: union declared here
+// :28:9: error: packed structs cannot contain fields of type '?anyerror'
+// :28:9: note: type has no guaranteed in-memory representation
+// :38:9: error: packed structs cannot contain fields of type 'fn() void'
+// :38:9: note: type has no guaranteed in-memory representation
+// :38:9: note: use '*const ' to make a function pointer type
diff --git a/test/cases/compile_errors/stage1/obj/packed_union_given_enum_tag_type.zig b/test/cases/compile_errors/packed_union_given_enum_tag_type.zig
index fceb7af65c..03aaef0d8c 100644
--- a/test/cases/compile_errors/stage1/obj/packed_union_given_enum_tag_type.zig
+++ b/test/cases/compile_errors/packed_union_given_enum_tag_type.zig
@@ -14,7 +14,7 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:6:30: error: packed union does not support enum tag type
+// :6:30: error: packed union does not support enum tag type
diff --git a/test/cases/compile_errors/stage1/obj/packed_union_with_automatic_layout_field.zig b/test/cases/compile_errors/packed_union_with_automatic_layout_field.zig
index 99ad6ca306..97771e9b78 100644
--- a/test/cases/compile_errors/stage1/obj/packed_union_with_automatic_layout_field.zig
+++ b/test/cases/compile_errors/packed_union_with_automatic_layout_field.zig
@@ -12,7 +12,9 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:6:5: error: non-packed, non-extern struct 'Foo' not allowed in packed union; no guaranteed in-memory representation
+// :6:5: error: packed unions cannot contain fields of type 'tmp.Foo'
+// :6:5: note: only packed structs layout are allowed in packed types
+// :1:13: note: struct declared here
diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig
index 414bf2ce5e..ee557cd6c2 100644
--- a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig
+++ b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig
@@ -31,5 +31,5 @@ export fn entry() void {
// backend=stage2
// target=native
//
-// :13:16: error: no field named 'arst' in enum 'tmp.Tag__enum_264'
+// :13:16: error: no field named 'arst' in enum 'tmp.Tag__enum_266'
// :1:13: note: enum declared here
diff --git a/test/cases/compile_errors/stage1/obj/specify_non-integer_enum_tag_type.zig b/test/cases/compile_errors/specify_non-integer_enum_tag_type.zig
index 333647e1e3..f2ff3e2cd1 100644
--- a/test/cases/compile_errors/stage1/obj/specify_non-integer_enum_tag_type.zig
+++ b/test/cases/compile_errors/specify_non-integer_enum_tag_type.zig
@@ -10,7 +10,7 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:1:21: error: expected integer, found 'f32'
+// :1:21: error: expected integer tag type, found 'f32'
diff --git a/test/cases/compile_errors/src_outside_function.zig b/test/cases/compile_errors/src_outside_function.zig
new file mode 100644
index 0000000000..8b66ba730b
--- /dev/null
+++ b/test/cases/compile_errors/src_outside_function.zig
@@ -0,0 +1,9 @@
+comptime {
+ @src();
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:5: error: @src outside function
diff --git a/test/cases/compile_errors/stage1/obj/direct_struct_loop.zig b/test/cases/compile_errors/stage1/obj/direct_struct_loop.zig
deleted file mode 100644
index 3062e617d6..0000000000
--- a/test/cases/compile_errors/stage1/obj/direct_struct_loop.zig
+++ /dev/null
@@ -1,8 +0,0 @@
-const A = struct { a : A, };
-export fn entry() usize { return @sizeOf(A); }
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:1:11: error: struct 'A' depends on itself
diff --git a/test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig b/test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig
deleted file mode 100644
index 6281d4b276..0000000000
--- a/test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig
+++ /dev/null
@@ -1,18 +0,0 @@
-fn returns() usize {
- return 2;
-}
-export fn f1() void {
- for ("hello") |_| returns();
-}
-export fn f2() void {
- var x: anyerror!i32 = error.Bad;
- for ("hello") |_| returns() else unreachable;
- _ = x;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:5:30: error: expression value is ignored
-// tmp.zig:9:30: error: expression value is ignored
diff --git a/test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig b/test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig
deleted file mode 100644
index 12214923d0..0000000000
--- a/test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig
+++ /dev/null
@@ -1,10 +0,0 @@
-const A = struct { b : B, };
-const B = struct { c : C, };
-const C = struct { a : A, };
-export fn entry() usize { return @sizeOf(A); }
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:1:11: error: struct 'A' depends on itself
diff --git a/test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig b/test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig
deleted file mode 100644
index 16b6bf565e..0000000000
--- a/test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig
+++ /dev/null
@@ -1,10 +0,0 @@
-pub fn main() void {
- var y = @intToPtr([*]align(4) u8, 5);
- _ = y;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:2:13: error: pointer type '[*]align(4) u8' requires aligned address
diff --git a/test/cases/compile_errors/stage1/obj/src_outside_function.zig b/test/cases/compile_errors/stage1/obj/src_outside_function.zig
deleted file mode 100644
index 7f8c7ae72f..0000000000
--- a/test/cases/compile_errors/stage1/obj/src_outside_function.zig
+++ /dev/null
@@ -1,9 +0,0 @@
-comptime {
- @src();
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:2:5: error: @src outside function
diff --git a/test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig b/test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig
deleted file mode 100644
index 9542cbc62f..0000000000
--- a/test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig
+++ /dev/null
@@ -1,22 +0,0 @@
-fn returns() usize {
- return 2;
-}
-export fn f1() void {
- while (true) returns();
-}
-export fn f2() void {
- var x: ?i32 = null;
- while (x) |_| returns();
-}
-export fn f3() void {
- var x: anyerror!i32 = error.Bad;
- while (x) |_| returns() else |_| unreachable;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:5:25: error: expression value is ignored
-// tmp.zig:9:26: error: expression value is ignored
-// tmp.zig:13:26: error: expression value is ignored
diff --git a/test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig b/test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig
deleted file mode 100644
index 2951d26c52..0000000000
--- a/test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig
+++ /dev/null
@@ -1,74 +0,0 @@
-const A = packed struct {
- x: anyerror,
-};
-const B = packed struct {
- x: [2]u24,
-};
-const C = packed struct {
- x: [1]anyerror,
-};
-const D = packed struct {
- x: [1]S,
-};
-const E = packed struct {
- x: [1]U,
-};
-const F = packed struct {
- x: ?anyerror,
-};
-const G = packed struct {
- x: Enum,
-};
-export fn entry1() void {
- var a: A = undefined;
- _ = a;
-}
-export fn entry2() void {
- var b: B = undefined;
- _ = b;
-}
-export fn entry3() void {
- var r: C = undefined;
- _ = r;
-}
-export fn entry4() void {
- var d: D = undefined;
- _ = d;
-}
-export fn entry5() void {
- var e: E = undefined;
- _ = e;
-}
-export fn entry6() void {
- var f: F = undefined;
- _ = f;
-}
-export fn entry7() void {
- var g: G = undefined;
- _ = g;
-}
-const S = struct {
- x: i32,
-};
-const U = struct {
- A: i32,
- B: u32,
-};
-const Enum = enum {
- A,
- B,
-};
-
-// error
-// backend=stage1
-// target=native
-// is_test=1
-//
-// tmp.zig:2:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation
-// tmp.zig:5:5: error: array of 'u24' not allowed in packed struct due to padding bits (must be padded from 48 to 64 bits)
-// tmp.zig:8:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation
-// tmp.zig:11:5: error: non-packed, non-extern struct 'S' not allowed in packed struct; no guaranteed in-memory representation
-// tmp.zig:14:5: error: non-packed, non-extern struct 'U' not allowed in packed struct; no guaranteed in-memory representation
-// tmp.zig:17:5: error: type '?anyerror' not allowed in packed struct; no guaranteed in-memory representation
-// tmp.zig:20:5: error: type 'Enum' not allowed in packed struct; no guaranteed in-memory representation
-// tmp.zig:57:14: note: enum declaration does not specify an integer tag type
diff --git a/test/cases/compile_errors/stage1/obj/struct_depends_on_itself_via_optional_field.zig b/test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig
index 46086172f7..cad779e3d7 100644
--- a/test/cases/compile_errors/stage1/obj/struct_depends_on_itself_via_optional_field.zig
+++ b/test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig
@@ -11,9 +11,9 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:1:17: error: struct 'LhsExpr' depends on itself
-// tmp.zig:5:5: note: while checking this field
-// tmp.zig:2:5: note: while checking this field
+// :1:17: error: struct 'tmp.LhsExpr' depends on itself
+// :5:5: note: while checking this field
+// :2:5: note: while checking this field
diff --git a/test/cases/compile_errors/stage1/obj/top_level_decl_dependency_loop.zig b/test/cases/compile_errors/top_level_decl_dependency_loop.zig
index ac70285c9c..3b0e60ac02 100644
--- a/test/cases/compile_errors/stage1/obj/top_level_decl_dependency_loop.zig
+++ b/test/cases/compile_errors/top_level_decl_dependency_loop.zig
@@ -6,7 +6,8 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:19: error: dependency loop detected
+// :1:1: error: dependency loop detected
+// :2:19: note: referenced here
diff --git a/test/cases/compile_errors/type_variables_must_be_constant.zig b/test/cases/compile_errors/type_variables_must_be_constant.zig
index 35e94f3641..1dbddc126c 100644
--- a/test/cases/compile_errors/type_variables_must_be_constant.zig
+++ b/test/cases/compile_errors/type_variables_must_be_constant.zig
@@ -7,5 +7,5 @@ export fn entry() foo {
// backend=stage2
// target=native
//
-// :1:1: error: variable of type 'type' must be const or comptime
-// :1:1: note: types are not available at runtime
+// :1:5: error: variable of type 'type' must be const or comptime
+// :1:5: note: types are not available at runtime
diff --git a/test/cases/compile_errors/stage1/obj/unused_variable_error_on_errdefer.zig b/test/cases/compile_errors/unused_variable_error_on_errdefer.zig
index b85d5729dc..4c37af04eb 100644
--- a/test/cases/compile_errors/stage1/obj/unused_variable_error_on_errdefer.zig
+++ b/test/cases/compile_errors/unused_variable_error_on_errdefer.zig
@@ -7,7 +7,7 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:15: error: unused variable: 'a'
+// :2:15: error: unused capture
diff --git a/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig b/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig
index 120ba5c588..c52f614657 100644
--- a/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig
+++ b/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig
@@ -8,5 +8,5 @@ export fn entry() void {
// backend=stage2
// target=native
//
-// :1:1: error: variable of type 'comptime_int' must be const or comptime
-// :1:1: note: to modify this variable at runtime, it must be given an explicit fixed-size number type
+// :1:5: error: variable of type 'comptime_int' must be const or comptime
+// :1:5: note: to modify this variable at runtime, it must be given an explicit fixed-size number type
diff --git a/test/cases/compile_errors/usingnamespace_with_wrong_type.zig b/test/cases/compile_errors/usingnamespace_with_wrong_type.zig
index 4ec4bf4838..294fd8c012 100644
--- a/test/cases/compile_errors/usingnamespace_with_wrong_type.zig
+++ b/test/cases/compile_errors/usingnamespace_with_wrong_type.zig
@@ -4,4 +4,4 @@ usingnamespace void;
// backend=stage2
// target=native
//
-// :1:1: error: type void has no namespace
+// :1:16: error: type void has no namespace
diff --git a/test/cases/compile_errors/stage1/obj/vector_index_out_of_bounds.zig b/test/cases/compile_errors/vector_index_out_of_bounds.zig
index fdffd8b455..ed1a25a321 100644
--- a/test/cases/compile_errors/stage1/obj/vector_index_out_of_bounds.zig
+++ b/test/cases/compile_errors/vector_index_out_of_bounds.zig
@@ -4,7 +4,7 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:62: error: index 3 outside vector of size 3
+// :2:49: error: expected 3 vector elements; found 4
diff --git a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_bool.zig b/test/cases/compile_errors/while_expected_error_union_got_bool.zig
index b8a72e9793..f7960437ec 100644
--- a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_bool.zig
+++ b/test/cases/compile_errors/while_expected_error_union_got_bool.zig
@@ -4,7 +4,7 @@ export fn foo() void {
fn bar() bool { return true; }
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:15: error: expected error union type, found 'bool'
+// :2:15: error: expected error union type, found 'bool'
diff --git a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_optional.zig b/test/cases/compile_errors/while_expected_error_union_got_optional.zig
index c933dc9509..5cabd76fce 100644
--- a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_optional.zig
+++ b/test/cases/compile_errors/while_expected_error_union_got_optional.zig
@@ -4,7 +4,7 @@ export fn foo() void {
fn bar() ?i32 { return 1; }
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:15: error: expected error union type, found '?i32'
+// :2:15: error: expected error union type, found '?i32'
diff --git a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_bool.zig b/test/cases/compile_errors/while_expected_optional_got_bool.zig
index 0458d1ba01..22b8c1e58c 100644
--- a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_bool.zig
+++ b/test/cases/compile_errors/while_expected_optional_got_bool.zig
@@ -4,7 +4,7 @@ export fn foo() void {
fn bar() bool { return true; }
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:15: error: expected optional type, found 'bool'
+// :2:15: error: expected optional type, found 'bool'
diff --git a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_error_union.zig b/test/cases/compile_errors/while_expected_optional_got_error_union.zig
index 7cdbd2cccf..38a8a0dd20 100644
--- a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_error_union.zig
+++ b/test/cases/compile_errors/while_expected_optional_got_error_union.zig
@@ -4,7 +4,7 @@ export fn foo() void {
fn bar() anyerror!i32 { return 1; }
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:2:15: error: expected optional type, found 'anyerror!i32'
+// :2:15: error: expected optional type, found 'anyerror!i32'
diff --git a/test/cases/compile_errors/while_loop_body_expression_ignored.zig b/test/cases/compile_errors/while_loop_body_expression_ignored.zig
new file mode 100644
index 0000000000..e33f48e6a5
--- /dev/null
+++ b/test/cases/compile_errors/while_loop_body_expression_ignored.zig
@@ -0,0 +1,43 @@
+fn returns() usize {
+ return 2;
+}
+export fn f1() void {
+ while (true) returns();
+}
+export fn f2() void {
+ var x: ?i32 = null;
+ while (x) |_| returns();
+}
+export fn f3() void {
+ var x: anyerror!i32 = error.Bad;
+ while (x) |_| returns() else |_| unreachable;
+}
+export fn f4() void {
+ var a = true;
+ while (a) {} else true;
+}
+export fn f5() void {
+ var a = true;
+ const foo = while (a) returns() else true;
+ _ = foo;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :5:25: error: value of type 'usize' ignored
+// :5:25: note: all non-void values must be used
+// :5:25: note: this error can be suppressed by assigning the value to '_'
+// :9:26: error: value of type 'usize' ignored
+// :9:26: note: all non-void values must be used
+// :9:26: note: this error can be suppressed by assigning the value to '_'
+// :13:26: error: value of type 'usize' ignored
+// :13:26: note: all non-void values must be used
+// :13:26: note: this error can be suppressed by assigning the value to '_'
+// :17:23: error: value of type 'bool' ignored
+// :17:23: note: all non-void values must be used
+// :17:23: note: this error can be suppressed by assigning the value to '_'
+// :21:34: error: value of type 'usize' ignored
+// :21:34: note: all non-void values must be used
+// :21:34: note: this error can be suppressed by assigning the value to '_'