commit 9819f53453a95aee97bc12854e6d7653b597c2b3 (tree) parent 580b6d1faddd0f2ef0c4e00fb042665b2cbdfa24 Author: Alex Rønne Petersen <alex@alexrp.com> Date: Wed, 17 Sep 2025 08:11:41 +0200 Some miscellaneous test suite cleanups (#25256) * test: remove test-compare-output and test-asm-link tests These were low value and unfocused tests. We already have coverage of the important aspects of these tests elsewhere. Additionally, there was really no need for these to have their own test harness. * test: rename issue_8550 standalone test to compile_asm * test: rename backend=stage2 to backend=selfhosted, and add backend=auto backend=auto (now the default if backend is omitted) means to let the compiler pick whatever backend it wants as the default. This is important for platforms where we don't yet have a self-hosted backend, such as loongarch64. Also purge a bunch of redundant target=native. * test: delete old stage1 compile_errors tests generic_function_returning_opaque_type.zig was salvaged as it's still worth having. * test: pull tests in test/cases/llvm/ up to test/cases/ There is nothing inherently LLVM-specific about any of these. * test: remove @cImport usage in interdependent_static_c_libs * test: move glibc_compat from link to standalone tests This is not really testing the linker. * build: -Dskip-translate-c now implies -Dskip-run-translated-c * build: skip test-cimport when -Dskip-translate-c is given Diffstat:
900 files changed, 512 insertions(+), 2451 deletions(-)
diff --git a/build.zig b/build.zig @@ -91,7 +91,7 @@ pub fn build(b: *std.Build) !void { const skip_single_threaded = b.option(bool, "skip-single-threaded", "Main test suite skips tests that are single-threaded") orelse false; const skip_compile_errors = b.option(bool, "skip-compile-errors", "Main test suite skips compile error tests") orelse false; const skip_translate_c = b.option(bool, "skip-translate-c", "Main test suite skips translate-c tests") orelse false; - const skip_run_translated_c = b.option(bool, "skip-run-translated-c", "Main test suite skips run-translated-c tests") orelse false; + const skip_run_translated_c = b.option(bool, "skip-run-translated-c", "Main test suite skips run-translated-c tests") orelse skip_translate_c; const skip_freebsd = b.option(bool, "skip-freebsd", "Main test suite skips targets with freebsd OS") orelse false; const skip_netbsd = b.option(bool, "skip-netbsd", "Main test suite skips targets with netbsd OS") orelse false; const skip_windows = b.option(bool, "skip-windows", "Main test suite skips targets with windows OS") orelse false; @@ -464,25 +464,27 @@ pub fn build(b: *std.Build) !void { .max_rss = 4000000000, })); - test_modules_step.dependOn(tests.addModuleTests(b, .{ - .test_filters = test_filters, - .test_target_filters = test_target_filters, - .test_extra_targets = test_extra_targets, - .root_src = "test/c_import.zig", - .name = "c-import", - .desc = "Run the @cImport tests", - .optimize_modes = optimization_modes, - .include_paths = &.{"test/c_import"}, - .skip_single_threaded = true, - .skip_non_native = skip_non_native, - .skip_freebsd = skip_freebsd, - .skip_netbsd = skip_netbsd, - .skip_windows = skip_windows, - .skip_macos = skip_macos, - .skip_linux = skip_linux, - .skip_llvm = skip_llvm, - .skip_libc = skip_libc, - })); + if (!skip_translate_c) { + test_modules_step.dependOn(tests.addModuleTests(b, .{ + .test_filters = test_filters, + .test_target_filters = test_target_filters, + .test_extra_targets = test_extra_targets, + .root_src = "test/c_import.zig", + .name = "c-import", + .desc = "Run the @cImport tests", + .optimize_modes = optimization_modes, + .include_paths = &.{"test/c_import"}, + .skip_single_threaded = true, + .skip_non_native = skip_non_native, + .skip_freebsd = skip_freebsd, + .skip_netbsd = skip_netbsd, + .skip_windows = skip_windows, + .skip_macos = skip_macos, + .skip_linux = skip_linux, + .skip_llvm = skip_llvm, + .skip_libc = skip_libc, + })); + } test_modules_step.dependOn(tests.addModuleTests(b, .{ .test_filters = test_filters, @@ -568,7 +570,6 @@ pub fn build(b: *std.Build) !void { unit_tests.root_module.addOptions("build_options", exe_options); unit_tests_step.dependOn(&b.addRunArtifact(unit_tests).step); - test_step.dependOn(tests.addCompareOutputTests(b, test_filters, optimization_modes)); test_step.dependOn(tests.addStandaloneTests( b, optimization_modes, @@ -590,7 +591,6 @@ pub fn build(b: *std.Build) !void { test_step.dependOn(tests.addLinkTests(b, enable_macos_sdk, enable_ios_sdk, enable_symlinks_windows)); test_step.dependOn(tests.addStackTraceTests(b, test_filters, optimization_modes)); test_step.dependOn(tests.addCliTests(b)); - test_step.dependOn(tests.addAssembleAndLinkTests(b, test_filters, optimization_modes)); if (tests.addDebuggerTests(b, .{ .test_filters = test_filters, .test_target_filters = test_target_filters, diff --git a/ci/riscv64-linux-debug.sh b/ci/riscv64-linux-debug.sh @@ -49,7 +49,7 @@ unset CXX ninja install # No -fqemu and -fwasmtime here as they're covered by the x86_64-linux scripts. -stage3-debug/bin/zig build test-cases test-modules test-unit test-c-abi test-stack-traces test-asm-link test-llvm-ir \ +stage3-debug/bin/zig build test-cases test-modules test-unit test-c-abi test-stack-traces test-llvm-ir \ --maxrss 68719476736 \ -Dstatic-llvm \ -Dskip-non-native \ diff --git a/ci/riscv64-linux-release.sh b/ci/riscv64-linux-release.sh @@ -49,7 +49,7 @@ unset CXX ninja install # No -fqemu and -fwasmtime here as they're covered by the x86_64-linux scripts. -stage3-release/bin/zig build test-cases test-modules test-unit test-c-abi test-stack-traces test-asm-link test-llvm-ir \ +stage3-release/bin/zig build test-cases test-modules test-unit test-c-abi test-stack-traces test-llvm-ir \ --maxrss 68719476736 \ -Dstatic-llvm \ -Dskip-non-native \ diff --git a/test/assemble_and_link.zig b/test/assemble_and_link.zig @@ -1,27 +0,0 @@ -const std = @import("std"); -const builtin = @import("builtin"); -const tests = @import("tests.zig"); - -pub fn addCases(cases: *tests.CompareOutputContext) void { - if (builtin.os.tag == .linux and builtin.cpu.arch == .x86_64) { - cases.addAsm("hello world linux x86_64", - \\.text - \\.globl _start - \\ - \\_start: - \\ mov $1, %rax - \\ mov $1, %rdi - \\ mov $msg, %rsi - \\ mov $14, %rdx - \\ syscall - \\ - \\ mov $60, %rax - \\ mov $0, %rdi - \\ syscall - \\ - \\.data - \\msg: - \\ .ascii "Hello, world!\n" - , "Hello, world!\n"); - } -} diff --git a/test/cases/README.md b/test/cases/README.md @@ -77,12 +77,12 @@ path will be prepended as a prefix on the test case name. ```zig // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,x86_64-macos ``` Possible backends are: - * `stage1`: equivalent to `-fstage1`. - * `stage2`: equivalent to passing `-fno-stage1 -fno-LLVM`. - * `llvm`: equivalent to `-fLLVM -fno-stage1`. + * `auto`: the default; compiler picks the backend based on robustness. + * `selfhosted`: equivalent to passing `-fno-llvm -fno-lld`. + * `llvm`: equivalent to `-fllvm`. diff --git a/test/cases/address_of_extern_var_as_const.zig b/test/cases/address_of_extern_var_as_const.zig @@ -6,5 +6,5 @@ export const p_external_variable = &external_variable; // compile // output_mode=Obj -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/address_space_pointer_access_chaining_pointer_to_optional_array.zig b/test/cases/address_space_pointer_access_chaining_pointer_to_optional_array.zig @@ -0,0 +1,12 @@ +fn entry(a: *addrspace(.gs) ?[1]i32) *addrspace(.gs) i32 { + return &a.*.?[0]; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/address_spaces_pointer_access_chaining_array_pointer.zig b/test/cases/address_spaces_pointer_access_chaining_array_pointer.zig @@ -0,0 +1,12 @@ +fn entry(a: *addrspace(.gs) [1]i32) *addrspace(.gs) i32 { + return &a[0]; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/address_spaces_pointer_access_chaining_complex.zig b/test/cases/address_spaces_pointer_access_chaining_complex.zig @@ -0,0 +1,13 @@ +const A = struct { a: ?[1]i32 }; +fn entry(a: *addrspace(.gs) [1]A) *addrspace(.gs) i32 { + return &a[0].a.?[0]; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/address_spaces_pointer_access_chaining_struct_pointer.zig b/test/cases/address_spaces_pointer_access_chaining_struct_pointer.zig @@ -0,0 +1,13 @@ +const A = struct { a: i32 }; +fn entry(a: *addrspace(.gs) A) *addrspace(.gs) i32 { + return &a.a; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/array_in_anon_struct.zig b/test/cases/array_in_anon_struct.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/bad_inferred_variable_type.zig b/test/cases/bad_inferred_variable_type.zig @@ -1,10 +0,0 @@ -pub fn main() void { - var x = null; - _ = &x; -} - -// error -// output_mode=Exe -// backend=stage2 -// -// :2:9: error: variable of type '@TypeOf(null)' must be const or comptime diff --git a/test/cases/blocks.zig b/test/cases/blocks.zig @@ -0,0 +1,23 @@ +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +fn foo(ok: bool) i32 { + const val: i32 = blk: { + var x: i32 = 1; + _ = &x; + if (!ok) break :blk x + 9; + break :blk x + 19; + }; + return val + 10; +} + +pub fn main() void { + assert(foo(false) == 20); + assert(foo(true) == 30); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/comparison_of_non-tagged_union_and_enum_literal.zig b/test/cases/comparison_of_non-tagged_union_and_enum_literal.zig @@ -1,14 +0,0 @@ -export fn entry() void { - const U = union { A: u32, B: u64 }; - var u = U{ .A = 42 }; - var ok = u == .A; - _ = &u; - _ = &ok; -} - -// error -// backend=stage2 -// target=native -// -// :4:14: error: comparison of union and enum literal is only valid for tagged union types -// :2:15: note: union 'tmp.entry.U' is not a tagged union diff --git a/test/cases/compile_errors/@embedFile_with_empty_path.zig b/test/cases/compile_errors/@embedFile_with_empty_path.zig @@ -5,7 +5,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:29: error: file path name cannot be empty diff --git a/test/cases/compile_errors/@errorCast_with_bad_type.zig b/test/cases/compile_errors/@errorCast_with_bad_type.zig @@ -20,7 +20,6 @@ pub export fn entry4() void { } // error -// backend=stage2 // target=x86_64-linux // // :4:25: error: expected error set or error union type, found 'comptime_int' diff --git a/test/cases/compile_errors/@intCast_on_vec.zig b/test/cases/compile_errors/@intCast_on_vec.zig @@ -7,7 +7,6 @@ export fn entry() void { // https://github.com/ziglang/zig/issues/13782 // error -// backend=stage2 // target=x86_64-linux // // :3:27: error: expected type 'u32', found '@Vector(4, u32)' diff --git a/test/cases/compile_errors/@intFromPtr_with_bad_type.zig b/test/cases/compile_errors/@intFromPtr_with_bad_type.zig @@ -5,7 +5,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:23: error: comptime-only type 'comptime_int' has no pointer address diff --git a/test/cases/compile_errors/@trap_comptime_call.zig b/test/cases/compile_errors/@trap_comptime_call.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:14: error: encountered @trap at comptime diff --git a/test/cases/compile_errors/AstGen_comptime_known_struct_is_resolved_before_error.zig b/test/cases/compile_errors/AstGen_comptime_known_struct_is_resolved_before_error.zig @@ -10,8 +10,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:12: error: variable of type 'tmp.S1' must be const or comptime // :2:8: note: struct requires comptime because of this field diff --git a/test/cases/compile_errors/C_pointer_pointing_to_non_C_ABI_compatible_type_or_has_align_attr.zig b/test/cases/compile_errors/C_pointer_pointing_to_non_C_ABI_compatible_type_or_has_align_attr.zig @@ -6,8 +6,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :3:19: error: C pointers cannot point to non-C-ABI-compatible type 'tmp.Foo' // :3:19: note: only extern structs and ABI sized packed structs are extern compatible diff --git a/test/cases/compile_errors/C_pointer_to_anyopaque.zig b/test/cases/compile_errors/C_pointer_to_anyopaque.zig @@ -5,7 +5,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :3:16: error: C pointers cannot point to opaque types diff --git a/test/cases/compile_errors/Issue_5586_Make_unary_minus_for_unsigned_types_a_compile_error.zig b/test/cases/compile_errors/Issue_5586_Make_unary_minus_for_unsigned_types_a_compile_error.zig @@ -8,8 +8,6 @@ export fn f2(x: @Vector(4, u32)) @Vector(4, u32) { } // error -// backend=stage2 -// target=native // // :3:12: error: negation of type 'u32' // :7:12: error: negation of type '@Vector(4, u32)' diff --git a/test/cases/compile_errors/Issue_6823_dont_allow_._to_be_followed_by_.zig b/test/cases/compile_errors/Issue_6823_dont_allow_._to_be_followed_by_.zig @@ -4,7 +4,5 @@ fn foo() void { } // error -// backend=stage2 -// target=native // // :2:28: error: '.*' cannot be followed by '*'; are you missing a space? diff --git a/test/cases/compile_errors/access_inactive_union_field_comptime.zig b/test/cases/compile_errors/access_inactive_union_field_comptime.zig @@ -15,8 +15,6 @@ pub export fn entry1() void { } // error -// backend=stage2 -// target=native // // :9:15: error: access of union field 'a' while field 'b' is active // :2:21: note: union declared here diff --git a/test/cases/compile_errors/access_non-existent_member_of_error_set.zig b/test/cases/compile_errors/access_non-existent_member_of_error_set.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:18: error: no error named 'Bar' in 'error{A}' diff --git a/test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig b/test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig @@ -13,8 +13,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:24: error: 'y' not accessible from inner function // :3:9: note: crossed function definition here diff --git a/test/cases/compile_errors/accessing_runtime_paramter_outside_function_scope.zig b/test/cases/compile_errors/accessing_runtime_paramter_outside_function_scope.zig @@ -6,7 +6,5 @@ export fn entry(y: u8) void { } // error -// backend=stage2 -// target=native // // :3:17: error: 'y' not accessible outside function scope diff --git a/test/cases/compile_errors/add_sat_on_undefined_value.zig b/test/cases/compile_errors/add_sat_on_undefined_value.zig @@ -15,8 +15,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :6:5: error: found compile log statement // diff --git a/test/cases/compile_errors/add_wrap_on_undefined_value.zig b/test/cases/compile_errors/add_wrap_on_undefined_value.zig @@ -15,8 +15,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :6:5: error: found compile log statement // diff --git a/test/cases/compile_errors/addition_with_non_numbers.zig b/test/cases/compile_errors/addition_with_non_numbers.zig @@ -8,7 +8,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :4:29: error: invalid operands to binary expression: 'struct' and 'struct' diff --git a/test/cases/compile_errors/address_of_number_literal.zig b/test/cases/compile_errors/address_of_number_literal.zig @@ -8,8 +8,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :4:12: error: expected type '*const i32', found '*const comptime_int' // :4:12: note: pointer type child 'comptime_int' cannot cast into pointer type child 'i32' diff --git a/test/cases/compile_errors/alignCast_expects_pointer_or_slice.zig b/test/cases/compile_errors/alignCast_expects_pointer_or_slice.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:41: error: expected pointer type, found 'u32' diff --git a/test/cases/compile_errors/alignOf_bad_type.zig b/test/cases/compile_errors/alignOf_bad_type.zig @@ -3,7 +3,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :2:21: error: no align available for type 'noreturn' diff --git a/test/cases/compile_errors/align_n_expr_function_pointers_is_a_compile_error.zig b/test/cases/compile_errors/align_n_expr_function_pointers_is_a_compile_error.zig @@ -3,7 +3,6 @@ export fn foo() align(1) void { } // error -// backend=stage2 // target=wasm32-freestanding-none // // :1:23: error: target does not support function alignment diff --git a/test/cases/compile_errors/alignment_of_enum_field_specified.zig b/test/cases/compile_errors/alignment_of_enum_field_specified.zig @@ -11,7 +11,5 @@ export fn entry1() void { } // error -// backend=stage2 -// target=native // // :4:13: error: enum fields cannot be aligned diff --git a/test/cases/compile_errors/ambiguous_coercion_of_division_operands.zig b/test/cases/compile_errors/ambiguous_coercion_of_division_operands.zig @@ -16,8 +16,6 @@ export fn entry4() void { } // error -// backend=stage2 -// target=native // // :2:25: error: ambiguous coercion of division operands 'comptime_float' and 'comptime_int'; non-zero remainder '4' // :6:23: error: ambiguous coercion of division operands 'comptime_int' and 'comptime_float'; non-zero remainder '4' diff --git a/test/cases/compile_errors/ambiguous_decl_reference.zig b/test/cases/compile_errors/ambiguous_decl_reference.zig @@ -13,8 +13,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:13: error: ambiguous reference // :7:9: note: declared here diff --git a/test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig b/test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig @@ -4,8 +4,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:9: error: expected type '?*anyopaque', found '?usize' // :3:9: note: optional type child 'usize' cannot cast into optional type child '*anyopaque' diff --git a/test/cases/compile_errors/array_access_of_non_array.zig b/test/cases/compile_errors/array_access_of_non_array.zig @@ -8,8 +8,6 @@ export fn g() void { } // error -// backend=stage2 -// target=native // // :3:8: error: type 'bool' does not support indexing // :3:8: note: operand must be an array, slice, tuple, or vector diff --git a/test/cases/compile_errors/array_access_of_type.zig b/test/cases/compile_errors/array_access_of_type.zig @@ -4,8 +4,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:14: error: type 'type' does not support indexing // :2:14: note: operand must be an array, slice, tuple, or vector diff --git a/test/cases/compile_errors/array_access_of_undeclared_identifier.zig b/test/cases/compile_errors/array_access_of_undeclared_identifier.zig @@ -3,7 +3,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:5: error: use of undeclared identifier 'i' diff --git a/test/cases/compile_errors/array_access_with_non_integer_index.zig b/test/cases/compile_errors/array_access_with_non_integer_index.zig @@ -12,8 +12,6 @@ export fn g() void { } // error -// backend=stage2 -// target=native // // :4:11: error: expected type 'usize', found 'bool' // :10:15: error: expected type 'usize', found 'bool' diff --git a/test/cases/compile_errors/array_concatenation_with_wrong_type.zig b/test/cases/compile_errors/array_concatenation_with_wrong_type.zig @@ -7,7 +7,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :3:11: error: expected indexable; found 'usize' diff --git a/test/cases/compile_errors/array_init_invalid_elem_count.zig b/test/cases/compile_errors/array_init_invalid_elem_count.zig @@ -32,8 +32,6 @@ export fn entry3() void { } // error -// backend=stage2 -// target=native // // :4:17: error: expected 8 vector elements; found 1 // :8:17: error: expected 8 vector elements; found 0 diff --git a/test/cases/compile_errors/array_init_not_supported_on_result_type.zig b/test/cases/compile_errors/array_init_not_supported_on_result_type.zig @@ -5,7 +5,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:12: error: type 'u32' does not support array initialization syntax diff --git a/test/cases/compile_errors/asm_at_compile_time.zig b/test/cases/compile_errors/asm_at_compile_time.zig @@ -11,8 +11,6 @@ fn doSomeAsm() void { } // error -// backend=stage2 -// target=native // // :6:5: error: unable to evaluate comptime expression // :2:14: note: called at comptime from here diff --git a/test/cases/compile_errors/asm_output_to_const.zig b/test/cases/compile_errors/asm_output_to_const.zig @@ -8,7 +8,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:5: error: asm cannot output to const local 'f' diff --git a/test/cases/compile_errors/assign_inline_fn_to_non-comptime_var.zig b/test/cases/compile_errors/assign_inline_fn_to_non-comptime_var.zig @@ -5,8 +5,6 @@ export fn entry() void { inline fn b() void {} // error -// backend=stage2 -// target=native // // :2:9: error: variable of type '*const fn () callconv(.@"inline") void' must be const or comptime // :2:9: note: function has inline calling convention diff --git a/test/cases/compile_errors/assign_local_bad_coercion.zig b/test/cases/compile_errors/assign_local_bad_coercion.zig @@ -13,8 +13,6 @@ export fn varEntry() u32 { } // error -// backend=stage2 -// target=native // // :6:21: error: expected type 'u32', found 'u64' // :6:21: note: unsigned 32-bit int cannot represent all possible unsigned 64-bit values diff --git a/test/cases/compile_errors/assign_null_to_non-optional_pointer.zig b/test/cases/compile_errors/assign_null_to_non-optional_pointer.zig @@ -5,7 +5,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:16: error: expected type '*u8', found '@TypeOf(null)' diff --git a/test/cases/compile_errors/assign_through_constant_pointer.zig b/test/cases/compile_errors/assign_through_constant_pointer.zig @@ -4,7 +4,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :3:9: error: cannot assign to constant diff --git a/test/cases/compile_errors/assign_through_constant_slice.zig b/test/cases/compile_errors/assign_through_constant_slice.zig @@ -4,7 +4,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :3:9: error: cannot assign to constant diff --git a/test/cases/compile_errors/assign_to_constant_field.zig b/test/cases/compile_errors/assign_to_constant_field.zig @@ -9,7 +9,5 @@ export fn derp() void { } // error -// backend=stage2 -// target=native // // :8:6: error: cannot assign to constant diff --git a/test/cases/compile_errors/assign_to_invalid_dereference.zig b/test/cases/compile_errors/assign_to_invalid_dereference.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:8: error: cannot dereference non-pointer type 'comptime_int' diff --git a/test/cases/compile_errors/assign_too_big_number_to_u16.zig b/test/cases/compile_errors/assign_too_big_number_to_u16.zig @@ -4,7 +4,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:26: error: type 'u16' cannot represent integer value '753664' diff --git a/test/cases/compile_errors/assign_unreachable.zig b/test/cases/compile_errors/assign_unreachable.zig @@ -4,8 +4,6 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:5: error: unreachable code // :2:15: note: control flow is diverted here diff --git a/test/cases/compile_errors/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig b/test/cases/compile_errors/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig @@ -15,8 +15,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :11:20: error: expected type 'u8', found '?u8' // :11:20: note: cannot convert optional to payload type diff --git a/test/cases/compile_errors/atomic_orderings_of_atomicStore_Acquire_or_AcqRel.zig b/test/cases/compile_errors/atomic_orderings_of_atomicStore_Acquire_or_AcqRel.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:31: error: @atomicStore atomic ordering must not be acquire or acq_rel diff --git a/test/cases/compile_errors/atomic_orderings_of_cmpxchg-failure_stricter_than_success.zig b/test/cases/compile_errors/atomic_orderings_of_cmpxchg-failure_stricter_than_success.zig @@ -5,7 +5,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :4:81: error: failure atomic ordering must be no stricter than success diff --git a/test/cases/compile_errors/atomic_orderings_of_cmpxchg-success_Monotonic_or_stricter.zig b/test/cases/compile_errors/atomic_orderings_of_cmpxchg-success_Monotonic_or_stricter.zig @@ -5,7 +5,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :4:58: error: success atomic ordering must be monotonic or stricter diff --git a/test/cases/compile_errors/atomicrmw_with_bool_op_not_.Xchg.zig b/test/cases/compile_errors/atomicrmw_with_bool_op_not_.Xchg.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:31: error: @atomicRmw with bool only allowed with .Xchg diff --git a/test/cases/compile_errors/atomicrmw_with_enum_op_not_.Xchg.zig b/test/cases/compile_errors/atomicrmw_with_enum_op_not_.Xchg.zig @@ -10,7 +10,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :9:28: error: @atomicRmw with enum only allowed with .Xchg diff --git a/test/cases/compile_errors/atomicrmw_with_float_op_not_.Xchg_.Add_.Sub_.Max_or_.Min.zig b/test/cases/compile_errors/atomicrmw_with_float_op_not_.Xchg_.Add_.Sub_.Max_or_.Min.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:30: error: @atomicRmw with float only allowed with .Xchg, .Add, .Sub, .Max, and .Min diff --git a/test/cases/compile_errors/atomics_with_invalid_type.zig b/test/cases/compile_errors/atomics_with_invalid_type.zig @@ -21,8 +21,6 @@ export fn errorSet() void { } // error -// backend=stage2 -// target=native // // :3:22: error: expected bool, integer, enum, packed struct, or pointer type; found 'f32' // :9:22: error: expected bool, integer, float, enum, packed struct, or pointer type; found 'tmp.NormalStruct' diff --git a/test/cases/compile_errors/attempt_to_cast_enum_literal_to_error.zig b/test/cases/compile_errors/attempt_to_cast_enum_literal_to_error.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:10: error: expected type 'error{Hi}', found '@Type(.enum_literal)' diff --git a/test/cases/compile_errors/attempt_to_close_over_comptime_variable_from_outer_scope.zig b/test/cases/compile_errors/attempt_to_close_over_comptime_variable_from_outer_scope.zig @@ -6,8 +6,6 @@ fn SimpleList(comptime L: usize) type { } // error -// backend=stage2 -// target=native // // :4:19: error: mutable 'T' not accessible from here // :2:9: note: declared mutable here diff --git a/test/cases/compile_errors/attempt_to_create_17_bit_float_type.zig b/test/cases/compile_errors/attempt_to_create_17_bit_float_type.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:9: error: 17-bit float unsupported diff --git a/test/cases/compile_errors/attempt_to_negate_a_non-integer_non-float_or_non-vector_type.zig b/test/cases/compile_errors/attempt_to_negate_a_non-integer_non-float_or_non-vector_type.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:15: error: negation of type 'anyerror!u32' diff --git a/test/cases/compile_errors/attempted_double_ampersand.zig b/test/cases/compile_errors/attempted_double_ampersand.zig @@ -6,7 +6,5 @@ export fn entry(a: bool, b: bool) i32 { } // error -// backend=stage2 -// target=native // // :2:11: error: ambiguous use of '&&'; use 'and' for logical AND, or change whitespace to ' & &' for bitwise AND diff --git a/test/cases/compile_errors/attempted_implicit_cast_from_T_to_long_array_ptr.zig b/test/cases/compile_errors/attempted_implicit_cast_from_T_to_long_array_ptr.zig @@ -9,8 +9,6 @@ export fn entry2(single: *u32) void { } // error -// backend=stage2 -// target=native // // :2:28: error: expected type '*const [0]u32', found '*u32' // :2:28: note: pointer type child 'u32' cannot cast into pointer type child '[0]u32' diff --git a/test/cases/compile_errors/attempted_implicit_cast_from_T_to_slice_const_T.zig b/test/cases/compile_errors/attempted_implicit_cast_from_T_to_slice_const_T.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:30: error: expected type '[*]const bool', found 'bool' diff --git a/test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig b/test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:22: error: expected type '*[1]i32', found '*const i32' // :4:22: note: cast discards const qualifier diff --git a/test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_sliceT.zig b/test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_sliceT.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:22: error: expected type '[]u32', found '*const u32' // :3:22: note: cast discards const qualifier diff --git a/test/cases/compile_errors/bad_alignCast_at_comptime.zig b/test/cases/compile_errors/bad_alignCast_at_comptime.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:47: error: pointer address 0x1 is not aligned to 4 bytes diff --git a/test/cases/compile_errors/bad_alignment_in_implicit_cast_from_array_pointer_to_slice.zig b/test/cases/compile_errors/bad_alignment_in_implicit_cast_from_array_pointer_to_slice.zig @@ -5,8 +5,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :3:31: error: expected type '[]align(16) u8', found '*[10]u8' // :3:31: note: pointer alignment '1' cannot cast into pointer alignment '16' diff --git a/test/cases/compile_errors/bad_alignment_type.zig b/test/cases/compile_errors/bad_alignment_type.zig @@ -8,8 +8,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:22: error: expected type 'u29', found 'bool' // :6:21: error: fractional component prevents float value '12.34' from coercion to type 'u29' diff --git a/test/cases/compile_errors/bad_identifier_in_function_with_struct_defined_inside_function_which_references_local_const.zig b/test/cases/compile_errors/bad_identifier_in_function_with_struct_defined_inside_function_which_references_local_const.zig @@ -11,7 +11,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:5: error: use of undeclared identifier 'bogus' diff --git a/test/cases/compile_errors/bad_inferred_variable_type.zig b/test/cases/compile_errors/bad_inferred_variable_type.zig @@ -0,0 +1,9 @@ +pub fn main() void { + var x = null; + _ = &x; +} + +// error +// output_mode=Exe +// +// :2:9: error: variable of type '@TypeOf(null)' must be const or comptime diff --git a/test/cases/compile_errors/bad_member_access_on_tuple.zig b/test/cases/compile_errors/bad_member_access_on_tuple.zig @@ -3,7 +3,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:21: error: struct '@TypeOf(.{})' has no member named 'is_optional' diff --git a/test/cases/compile_errors/bad_usage_of_call.zig b/test/cases/compile_errors/bad_usage_of_call.zig @@ -36,8 +36,6 @@ noinline fn dummy() u32 { noinline fn dummy2() void {} // error -// backend=stage2 -// target=native // // :2:23: error: expected a tuple, found 'void' // :5:21: error: unable to perform 'never_inline' call at compile-time diff --git a/test/cases/compile_errors/binary_OR_operator_on_error_sets.zig b/test/cases/compile_errors/binary_OR_operator_on_error_sets.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:18: error: invalid operands to binary bitwise expression: 'error_set' and 'error_set' diff --git a/test/cases/compile_errors/binary_not_on_number_literal.zig b/test/cases/compile_errors/binary_not_on_number_literal.zig @@ -7,7 +7,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :3:61: error: bitwise not operation on type 'comptime_int' diff --git a/test/cases/compile_errors/bitCast_same_size_but_bit_count_mismatch.zig b/test/cases/compile_errors/bitCast_same_size_but_bit_count_mismatch.zig @@ -4,7 +4,5 @@ export fn entry(byte: u8) void { } // error -// backend=stage2 -// target=native // // :2:22: error: @bitCast size mismatch: destination type 'u7' has 7 bits but source type 'u8' has 8 bits diff --git a/test/cases/compile_errors/bitCast_to_enum_type.zig b/test/cases/compile_errors/bitCast_to_enum_type.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:18: error: cannot @bitCast to 'tmp.entry.E' // :3:18: note: use @enumFromInt to cast from 'u32' diff --git a/test/cases/compile_errors/bitCast_with_different_sizes_inside_an_expression.zig b/test/cases/compile_errors/bitCast_with_different_sizes_inside_an_expression.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:26: error: @bitCast size mismatch: destination type 'u8' has 8 bits but source type 'f32' has 32 bits diff --git a/test/cases/compile_errors/bit_shifting_only_works_on_integer_types.zig b/test/cases/compile_errors/bit_shifting_only_works_on_integer_types.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:15: error: bit shifting operation expected integer type, found '*const u8' diff --git a/test/cases/compile_errors/bitsize_of_packed_struct_checks_backing_int_ty.zig b/test/cases/compile_errors/bitsize_of_packed_struct_checks_backing_int_ty.zig @@ -7,7 +7,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:27: error: backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 1 diff --git a/test/cases/compile_errors/bogus_compile_var.zig b/test/cases/compile_errors/bogus_compile_var.zig @@ -4,8 +4,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:29: error: root source file struct 'builtin' has no member named 'bogus' // note: struct declared here diff --git a/test/cases/compile_errors/bool_not_on_vector_of_ints.zig b/test/cases/compile_errors/bool_not_on_vector_of_ints.zig @@ -4,7 +4,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:10: error: boolean not operation on type '@Vector(2, u1)' diff --git a/test/cases/compile_errors/break_void_result_location.zig b/test/cases/compile_errors/break_void_result_location.zig @@ -24,8 +24,6 @@ export fn f4() void { } // error -// backend=stage2 -// target=native // // :2:22: error: expected type 'usize', found 'void' // :7:9: error: expected type 'usize', found 'void' diff --git a/test/cases/compile_errors/builtin_call_with_invalid_param.zig b/test/cases/compile_errors/builtin_call_with_invalid_param.zig @@ -5,8 +5,6 @@ export fn builtinCallBoolFunctionInlineWithVoid() void { fn boolFunction(_: bool) void {} // error -// backend=stage2 -// target=native // // :2:43: error: expected type 'bool', found 'void' // :5:20: note: parameter type declared here diff --git a/test/cases/compile_errors/c_pointer_to_void.zig b/test/cases/compile_errors/c_pointer_to_void.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:18: error: C pointers cannot point to non-C-ABI-compatible type 'void' // :2:18: note: 'void' is a zero bit type; for C 'void' use 'anyopaque' diff --git a/test/cases/compile_errors/call_assigned_to_constant.zig b/test/cases/compile_errors/call_assigned_to_constant.zig @@ -17,8 +17,6 @@ export fn entry1() void { } // error -// backend=stage2 -// target=native // // :12:5: error: cannot assign to constant // :16:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/call_from_double_ptr.zig b/test/cases/compile_errors/call_from_double_ptr.zig @@ -7,8 +7,6 @@ export fn entry(a: **S) void { } // error -// backend=stage2 -// target=native // // 6:10: error: no field or member function named 'b' in '*tmp.S' // 6:10: note: method invocation only supports up to one level of implicit pointer dereferencing diff --git a/test/cases/compile_errors/call_from_naked_func.zig b/test/cases/compile_errors/call_from_naked_func.zig @@ -17,8 +17,6 @@ export fn comptimeBuiltinCall() callconv(.naked) void { fn f() void {} // error -// backend=stage2 -// target=native // // :2:6: error: runtime call not allowed in naked function // :6:5: error: runtime @call not allowed in naked function diff --git a/test/cases/compile_errors/call_optional_function.zig b/test/cases/compile_errors/call_optional_function.zig @@ -8,8 +8,6 @@ pub export fn entry2() void { } // error -// backend=stage2 -// target=native // // :3:9: error: cannot call optional type '?fn () void' // :3:9: note: consider using '.?', 'orelse' or 'if' diff --git a/test/cases/compile_errors/callconv_from_global_variable.zig b/test/cases/compile_errors/callconv_from_global_variable.zig @@ -2,8 +2,6 @@ var cc: @import("std").builtin.CallingConvention = .c; export fn foo() callconv(cc) void {} // error -// backend=stage2 -// target=native // // :2:26: error: unable to resolve comptime value // :2:26: note: calling convention must be comptime-known diff --git a/test/cases/compile_errors/callconv_interrupt_on_unsupported_platform.zig b/test/cases/compile_errors/callconv_interrupt_on_unsupported_platform.zig @@ -3,7 +3,6 @@ export fn entry2() callconv(.{ .x86_interrupt = .{} }) void {} export fn entry3() callconv(.avr_interrupt) void {} // error -// backend=stage2 // target=aarch64-linux-none // // :1:30: error: calling convention 'x86_64_interrupt' only available on architectures 'x86_64' diff --git a/test/cases/compile_errors/callconv_signal_on_unsupported_platform.zig b/test/cases/compile_errors/callconv_signal_on_unsupported_platform.zig @@ -1,7 +1,6 @@ export fn entry() callconv(.avr_signal) void {} // error -// backend=stage2 // target=x86_64-linux-none // // :1:29: error: calling convention 'avr_signal' only available on architectures 'avr' diff --git a/test/cases/compile_errors/callconv_stdcall_fastcall_thiscall_on_unsupported_platform.zig b/test/cases/compile_errors/callconv_stdcall_fastcall_thiscall_on_unsupported_platform.zig @@ -15,7 +15,6 @@ export fn entry3() void { } // error -// backend=stage2 // target=x86_64-linux-none // // :1:28: error: calling convention 'x86_stdcall' only available on architectures 'x86' diff --git a/test/cases/compile_errors/calling_function_with_naked_calling_convention.zig b/test/cases/compile_errors/calling_function_with_naked_calling_convention.zig @@ -4,8 +4,6 @@ export fn entry() void { fn foo() callconv(.naked) void {} // error -// backend=stage2 -// target=native // // :2:5: error: unable to call function with calling convention 'naked' // :4:1: note: function declared here diff --git a/test/cases/compile_errors/calling_var_args_extern_function_passing_array_instead_of_pointer.zig b/test/cases/compile_errors/calling_var_args_extern_function_passing_array_instead_of_pointer.zig @@ -6,8 +6,6 @@ export fn entry() void { pub extern fn foo(format: *const u8, ...) void; // error -// backend=stage2 -// target=native // // :3:16: error: expected type '*const u8', found '[5:0]u8' // :6:27: note: parameter type declared here diff --git a/test/cases/compile_errors/cannot_break_out_of_defer_expression.zig b/test/cases/compile_errors/cannot_break_out_of_defer_expression.zig @@ -7,8 +7,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:13: error: cannot break out of defer expression // :3:9: note: defer expression here diff --git a/test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig b/test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig @@ -7,8 +7,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:13: error: cannot continue out of defer expression // :3:9: note: defer expression here diff --git a/test/cases/compile_errors/capture_by_ref_discard.zig b/test/cases/compile_errors/capture_by_ref_discard.zig @@ -17,8 +17,6 @@ export fn d() void { } // error -// backend=stage2 -// target=native // // :2:16: error: pointer modifier invalid on discard // :7:18: error: pointer modifier invalid on discard diff --git a/test/cases/compile_errors/capture_by_ref_if.zig b/test/cases/compile_errors/capture_by_ref_if.zig @@ -3,8 +3,6 @@ test { } // error -// backend=stage2 -// target=native // // :2:22: error: unused capture // :2:38: error: unused capture diff --git a/test/cases/compile_errors/capture_by_ref_if_err_switch.zig b/test/cases/compile_errors/capture_by_ref_if_err_switch.zig @@ -4,7 +4,5 @@ test { } // error -// backend=stage2 -// target=native // // :3:14: error: unused capture diff --git a/test/cases/compile_errors/capture_by_ref_switch.zig b/test/cases/compile_errors/capture_by_ref_switch.zig @@ -5,7 +5,5 @@ test { } // error -// backend=stage2 -// target=native // // :3:17: error: unused capture diff --git a/test/cases/compile_errors/capture_by_ref_while.zig b/test/cases/compile_errors/capture_by_ref_while.zig @@ -3,8 +3,6 @@ test { } // error -// backend=stage2 -// target=native // // :2:25: error: unused capture // :2:39: error: unused capture diff --git a/test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig b/test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig @@ -16,8 +16,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :6:9: error: expected type '?*const fn (i8) void', found '?*const fn (u64) void' // :6:9: note: pointer type child 'fn (u64) void' cannot cast into pointer type child 'fn (i8) void' diff --git a/test/cases/compile_errors/cast_enum_literal_to_enum_but_it_doesnt_match.zig b/test/cases/compile_errors/cast_enum_literal_to_enum_but_it_doesnt_match.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:21: error: enum 'tmp.Foo' has no member named 'c' // :1:13: note: enum declared here diff --git a/test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig b/test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig @@ -8,8 +8,6 @@ fn foo() anyerror!i32 { } // error -// backend=stage2 -// target=native // // :3:37: error: expected type 'error{A}!i32', found 'anyerror!i32' // :3:37: note: global error set cannot cast into a smaller set diff --git a/test/cases/compile_errors/cast_global_error_set_to_error_set.zig b/test/cases/compile_errors/cast_global_error_set_to_error_set.zig @@ -8,8 +8,6 @@ fn foo() anyerror { } // error -// backend=stage2 -// target=native // // :3:33: error: expected type 'error{A}', found 'anyerror' // :3:33: note: global error set cannot cast into a smaller set diff --git a/test/cases/compile_errors/cast_negative_integer_literal_to_usize.zig b/test/cases/compile_errors/cast_negative_integer_literal_to_usize.zig @@ -8,8 +8,6 @@ export fn entry1() void { } // error -// backend=stage2 -// target=native // // :2:26: error: type 'usize' cannot represent integer value '-10' // :6:26: error: float value '-10' cannot be stored in integer type 'usize' diff --git a/test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig b/test/cases/compile_errors/cast_negative_value_to_unsigned_integer.zig @@ -10,8 +10,6 @@ export fn entry1() void { } // error -// backend=stage2 -// target=native // // :3:36: error: type 'u32' cannot represent integer value '-1' // :8:27: error: type 'u32' cannot represent integer value '-1' diff --git a/test/cases/compile_errors/cast_unreachable.zig b/test/cases/compile_errors/cast_unreachable.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:12: error: unreachable code // :2:21: note: control flow is diverted here diff --git a/test/cases/compile_errors/cast_without_result_type.zig b/test/cases/compile_errors/cast_without_result_type.zig @@ -19,8 +19,6 @@ export fn e() void { } // error -// backend=stage2 -// target=native // // :2:9: error: @ptrFromInt must have a known result type // :2:9: note: use @as to provide explicit result type diff --git a/test/cases/compile_errors/cast_without_result_type_due_to_anyopaque_pointer.zig b/test/cases/compile_errors/cast_without_result_type_due_to_anyopaque_pointer.zig @@ -10,8 +10,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :2:34: error: @intCast must have a known result type // :2:34: note: result type is unknown due to opaque pointer type diff --git a/test/cases/compile_errors/cast_without_result_type_due_to_generic_parameter.zig b/test/cases/compile_errors/cast_without_result_type_due_to_generic_parameter.zig @@ -19,8 +19,6 @@ export fn f() void { fn bar(_: anytype) void {} // error -// backend=stage2 -// target=native // // :2:9: error: @ptrFromInt must have a known result type // :2:8: note: result type is unknown due to anytype parameter diff --git a/test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig b/test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig @@ -17,8 +17,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:16: error: expected type '*const u3', found '*align(1:3:1) const u3' // :8:16: note: pointer host size '1' cannot cast into pointer host size '0' diff --git a/test/cases/compile_errors/chained_comparison_operators.zig b/test/cases/compile_errors/chained_comparison_operators.zig @@ -3,7 +3,5 @@ export fn a(value: u32) bool { } // error -// backend=stage2 -// target=native // // :2:22: error: comparison operators cannot be chained diff --git a/test/cases/compile_errors/cimport.zig b/test/cases/compile_errors/cimport.zig @@ -7,8 +7,6 @@ const d = @cImport({ }); // error -// backend=stage2 -// target=native // // :1:11: error: C define valid only inside C import block // :3:17: error: C define valid only inside C import block diff --git a/test/cases/compile_errors/closure_get_in_param_ty_instantiate_incorrectly.zig b/test/cases/compile_errors/closure_get_in_param_ty_instantiate_incorrectly.zig @@ -18,8 +18,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :17:25: error: expected type 'u32', found 'type' // :3:21: note: parameter type declared here diff --git a/test/cases/compile_errors/coercion_to_error_union.zig b/test/cases/compile_errors/coercion_to_error_union.zig @@ -4,8 +4,6 @@ export fn b() void { } // error -// backend=stage2 -// target=native // // 2:28: error: expected type 'anyerror!u8', found 'comptime_int' // 2:28: note: type 'u8' cannot represent value '256' diff --git a/test/cases/compile_errors/coercion_to_optional.zig b/test/cases/compile_errors/coercion_to_optional.zig @@ -4,8 +4,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // 2:20: error: expected type '?u8', found 'comptime_int' // 2:20: note: type 'u8' cannot represent value '256' diff --git a/test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig b/test/cases/compile_errors/compare_optional_to_non_optional_with_incomparable_type.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:12: error: operator == not allowed for type '?[3]i32' diff --git a/test/cases/compile_errors/comparing_a_non-optional_pointer_against_null.zig b/test/cases/compile_errors/comparing_a_non-optional_pointer_against_null.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:12: error: comparison of '*i32' with null diff --git a/test/cases/compile_errors/comparison_of_non-tagged_union_and_enum_literal.zig b/test/cases/compile_errors/comparison_of_non-tagged_union_and_enum_literal.zig @@ -0,0 +1,12 @@ +export fn entry() void { + const U = union { A: u32, B: u64 }; + var u = U{ .A = 42 }; + var ok = u == .A; + _ = &u; + _ = &ok; +} + +// error +// +// :4:14: error: comparison of union and enum literal is only valid for tagged union types +// :2:15: note: union 'tmp.entry.U' is not a tagged union diff --git a/test/cases/compile_errors/compileError_shows_traceback_of_references_that_caused_it.zig b/test/cases/compile_errors/compileError_shows_traceback_of_references_that_caused_it.zig @@ -10,7 +10,5 @@ export fn entry() i32 { } // error -// backend=stage2 -// target=native // // :1:13: error: aoeu diff --git a/test/cases/compile_errors/compileLog_of_tagged_enum_doesnt_crash_the_compiler.zig b/test/cases/compile_errors/compileLog_of_tagged_enum_doesnt_crash_the_compiler.zig @@ -12,8 +12,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:5: error: found compile log statement // :6:5: note: also here diff --git a/test/cases/compile_errors/compile_error_in_struct_init_expression.zig b/test/cases/compile_errors/compile_error_in_struct_init_expression.zig @@ -10,7 +10,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:14: error: use of undeclared identifier 'crap' diff --git a/test/cases/compile_errors/compile_error_when_evaluating_return_type_of_inferred_error_set.zig b/test/cases/compile_errors/compile_error_when_evaluating_return_type_of_inferred_error_set.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:11: error: use of undeclared identifier 'SymbolThatDoesNotExist' diff --git a/test/cases/compile_errors/compile_log.zig b/test/cases/compile_errors/compile_log.zig @@ -13,8 +13,6 @@ export fn baz() void { } // error -// backend=stage2 -// target=native // // :6:5: error: found compile log statement // :6:5: note: also here diff --git a/test/cases/compile_errors/compile_log_statement_inside_function_which_must_be_comptime_evaluated.zig b/test/cases/compile_errors/compile_log_statement_inside_function_which_must_be_comptime_evaluated.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: found compile log statement // diff --git a/test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig b/test/cases/compile_errors/compile_log_statement_warning_deduplication_in_generic_fn.zig @@ -10,8 +10,6 @@ fn inner(comptime n: usize) void { } // error -// backend=stage2 -// target=native // // :8:9: error: found compile log statement // :8:9: note: also here diff --git a/test/cases/compile_errors/compile_time_null_ptr_cast.zig b/test/cases/compile_errors/compile_time_null_ptr_cast.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:32: error: null pointer casted to type '*i32' diff --git a/test/cases/compile_errors/comptime_arg_to_generic_fn_callee_error.zig b/test/cases/compile_errors/comptime_arg_to_generic_fn_callee_error.zig @@ -14,8 +14,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:28: error: enum 'meta.FieldEnum(tmp.MyStruct)' has no member named 'c' // :?:?: note: enum declared here diff --git a/test/cases/compile_errors/comptime_cast_enum_to_union_but_field_has_payload.zig b/test/cases/compile_errors/comptime_cast_enum_to_union_but_field_has_payload.zig @@ -10,8 +10,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:26: error: coercion from enum 'tmp.Letter' to union 'tmp.Value' must initialize 'i32' field 'A' // :3:5: note: field 'A' declared here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_catch.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_catch.zig @@ -9,8 +9,6 @@ fn bad() !void { } // error -// backend=stage2 -// target=native // // :4:21: error: comptime control flow inside runtime block // :4:15: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_if_bool.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_if_bool.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:22: error: comptime control flow inside runtime block // :6:15: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_if_error.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_if_error.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:20: error: comptime control flow inside runtime block // :6:13: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_if_optional.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_if_optional.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:20: error: comptime control flow inside runtime block // :6:13: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_orelse.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_orelse.zig @@ -9,8 +9,6 @@ fn bad() ?void { } // error -// backend=stage2 -// target=native // // :4:22: error: comptime control flow inside runtime block // :4:15: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_switch.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_switch.zig @@ -12,8 +12,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:19: error: comptime control flow inside runtime block // :6:17: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_while_bool.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_while_bool.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:25: error: comptime control flow inside runtime block // :6:18: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_while_error.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_while_error.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:13: error: comptime control flow inside runtime block // :6:16: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_inside_runtime_while_optional.zig b/test/cases/compile_errors/comptime_continue_inside_runtime_while_optional.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:23: error: comptime control flow inside runtime block // :6:16: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_continue_to_outer_inline_loop.zig b/test/cases/compile_errors/comptime_continue_to_outer_inline_loop.zig @@ -15,8 +15,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :10:30: error: comptime control flow inside runtime block // :7:13: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_if_inside_runtime_for.zig b/test/cases/compile_errors/comptime_if_inside_runtime_for.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:21: error: value with comptime-only type 'comptime_int' depends on runtime control flow // :4:10: note: runtime control flow here diff --git a/test/cases/compile_errors/comptime_implicit_cast_f64_to_f32.zig b/test/cases/compile_errors/comptime_implicit_cast_f64_to_f32.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:20: error: type 'f32' cannot represent float value '16777217' diff --git a/test/cases/compile_errors/comptime_param_coersion.zig b/test/cases/compile_errors/comptime_param_coersion.zig @@ -11,8 +11,6 @@ fn foo(comptime _: i32, comptime _: i32) void {} fn bar(comptime _: i32, _: i32) void {} // error -// backend=stage2 -// target=native // // :3:9: error: expected type 'fn (comptime i32, comptime i32) void', found 'fn (comptime i32, i32) void' // :3:9: note: non-comptime parameter 1 cannot cast into a comptime parameter diff --git a/test/cases/compile_errors/comptime_slice-sentinel_does_not_match_memory_at_target_index_terminated.zig b/test/cases/compile_errors/comptime_slice-sentinel_does_not_match_memory_at_target_index_terminated.zig @@ -55,8 +55,6 @@ export fn foo_slice() void { } // error -// backend=stage2 -// target=native // // :4:29: error: value in memory does not match slice sentinel // :4:29: note: expected '0', found '100' diff --git a/test/cases/compile_errors/comptime_slice-sentinel_does_not_match_memory_at_target_index_unterminated.zig b/test/cases/compile_errors/comptime_slice-sentinel_does_not_match_memory_at_target_index_unterminated.zig @@ -55,8 +55,6 @@ export fn foo_slice() void { } // error -// backend=stage2 -// target=native // // :4:29: error: value in memory does not match slice sentinel // :4:29: note: expected '0', found '100' diff --git a/test/cases/compile_errors/comptime_slice-sentinel_does_not_match_target-sentinel.zig b/test/cases/compile_errors/comptime_slice-sentinel_does_not_match_target-sentinel.zig @@ -70,8 +70,6 @@ export fn typeName_slice() void { } // error -// backend=stage2 -// target=native // // :4:29: error: value in memory does not match slice sentinel // :4:29: note: expected '255', found '0' diff --git a/test/cases/compile_errors/comptime_slice-sentinel_is_out_of_bounds_terminated.zig b/test/cases/compile_errors/comptime_slice-sentinel_is_out_of_bounds_terminated.zig @@ -55,8 +55,6 @@ export fn foo_slice() void { } // error -// backend=stage2 -// target=native // // :4:33: error: slice end index 15 exceeds bounds of containing decl of type '[14:0]u8' // :12:33: error: slice end index 15 exceeds bounds of containing decl of type '[14:0]u8' diff --git a/test/cases/compile_errors/comptime_slice-sentinel_is_out_of_bounds_unterminated.zig b/test/cases/compile_errors/comptime_slice-sentinel_is_out_of_bounds_unterminated.zig @@ -55,8 +55,6 @@ export fn foo_slice() void { } // error -// backend=stage2 -// target=native // // :4:33: error: slice end index 14 exceeds bounds of containing decl of type '[14]u8' // :12:33: error: slice end index 14 exceeds bounds of containing decl of type '[14]u8' diff --git a/test/cases/compile_errors/comptime_slice_of_an_undefined_slice.zig b/test/cases/compile_errors/comptime_slice_of_an_undefined_slice.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:14: error: slice of undefined diff --git a/test/cases/compile_errors/comptime_slice_of_undefined_pointer_non-zero_len.zig b/test/cases/compile_errors/comptime_slice_of_undefined_pointer_non-zero_len.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:41: error: non-zero length slice of undefined pointer diff --git a/test/cases/compile_errors/comptime_store_in_comptime_switch_in_runtime_if.zig b/test/cases/compile_errors/comptime_store_in_comptime_switch_in_runtime_if.zig @@ -18,8 +18,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :13:25: error: store to comptime variable depends on runtime condition // :11:16: note: runtime condition here diff --git a/test/cases/compile_errors/comptime_struct_field_no_init_value.zig b/test/cases/compile_errors/comptime_struct_field_no_init_value.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: comptime field without default initialization value diff --git a/test/cases/compile_errors/comptime_unreachable.zig b/test/cases/compile_errors/comptime_unreachable.zig @@ -3,7 +3,5 @@ pub export fn entry() void { } // error -// target=native -// backend=stage2 // // :2:14: error: reached unreachable code diff --git a/test/cases/compile_errors/const_is_a_statement_not_an_expression.zig b/test/cases/compile_errors/const_is_a_statement_not_an_expression.zig @@ -3,7 +3,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:6: error: expected expression, found 'const' diff --git a/test/cases/compile_errors/container_init_with_non-type.zig b/test/cases/compile_errors/container_init_with_non-type.zig @@ -6,7 +6,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :2:11: error: expected type 'type', found 'i32' diff --git a/test/cases/compile_errors/control_flow_uses_comptime_var_at_runtime.zig b/test/cases/compile_errors/control_flow_uses_comptime_var_at_runtime.zig @@ -29,8 +29,6 @@ export fn qux() void { } // error -// backend=stage2 -// target=native // // :3:24: error: cannot store to comptime variable in non-inline loop // :3:5: note: non-inline loop here diff --git a/test/cases/compile_errors/decl_shadows_local.zig b/test/cases/compile_errors/decl_shadows_local.zig @@ -14,8 +14,6 @@ fn bar(a: usize) void { } // error -// backend=stage2 -// target=native // // :3:15: error: declaration 'a' shadows function parameter from outer scope // :1:8: note: previous declaration here diff --git a/test/cases/compile_errors/declaration_between_fields.zig b/test/cases/compile_errors/declaration_between_fields.zig @@ -16,8 +16,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :9:5: error: declarations are not allowed between container fields // :5:5: note: field before declarations here diff --git a/test/cases/compile_errors/declaration_with_same_name_as_primitive_must_use_special_syntax.zig b/test/cases/compile_errors/declaration_with_same_name_as_primitive_must_use_special_syntax.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:7: error: name shadows primitive 'u8' // :1:7: note: consider using @"u8" to disambiguate diff --git a/test/cases/compile_errors/deduplicate_undeclared_identifier.zig b/test/cases/compile_errors/deduplicate_undeclared_identifier.zig @@ -6,8 +6,6 @@ export fn b() void { } // error -// backend=stage2 -// target=native // // :2:5: error: use of undeclared identifier 'x' // :5:5: error: use of undeclared identifier 'x' diff --git a/test/cases/compile_errors/deref_on_undefined_value.zig b/test/cases/compile_errors/deref_on_undefined_value.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:10: error: cannot dereference undefined value diff --git a/test/cases/compile_errors/deref_slice_and_get_len_field.zig b/test/cases/compile_errors/deref_slice_and_get_len_field.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:10: error: index syntax required for slice type '[]u8' diff --git a/test/cases/compile_errors/dereference_an_array.zig b/test/cases/compile_errors/dereference_an_array.zig @@ -11,7 +11,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :5:10: error: cannot dereference non-pointer type '[10]u8' diff --git a/test/cases/compile_errors/dereference_slice.zig b/test/cases/compile_errors/dereference_slice.zig @@ -6,7 +6,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:13: error: index syntax required for slice type '[]i32' diff --git a/test/cases/compile_errors/dereference_unknown_length_pointer.zig b/test/cases/compile_errors/dereference_unknown_length_pointer.zig @@ -3,7 +3,5 @@ export fn entry(x: [*]i32) i32 { } // error -// backend=stage2 -// target=native // // :2:13: error: index syntax required for unknown-length pointer type '[*]i32' diff --git a/test/cases/compile_errors/dereferencing_invalid_payload_ptr_at_comptime.zig b/test/cases/compile_errors/dereferencing_invalid_payload_ptr_at_comptime.zig @@ -25,8 +25,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :16:20: error: attempt to use null value // :24:20: error: attempt to unwrap error: Foo diff --git a/test/cases/compile_errors/destructure_error_union.zig b/test/cases/compile_errors/destructure_error_union.zig @@ -7,8 +7,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:28: error: type 'anyerror!struct { u8, u8 }' cannot be destructured // :4:26: note: result destructured here diff --git a/test/cases/compile_errors/direct_struct_loop.zig b/test/cases/compile_errors/direct_struct_loop.zig @@ -6,7 +6,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:11: error: struct 'tmp.A' depends on itself diff --git a/test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig b/test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig @@ -25,8 +25,6 @@ export fn d() void { } // error -// backend=stage2 -// target=native // // :3:8: error: opaque types have unknown size and therefore cannot be directly embedded in structs // :1:11: note: opaque declared here diff --git a/test/cases/compile_errors/disallow_coercion_from_non-null-terminated_pointer_to_null-terminated_pointer.zig b/test/cases/compile_errors/disallow_coercion_from_non-null-terminated_pointer_to_null-terminated_pointer.zig @@ -6,8 +6,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:14: error: expected type '[*:0]const u8', found '[*]const u8' // :5:14: note: destination pointer requires '0' sentinel diff --git a/test/cases/compile_errors/discarded_array_bad_elem_type.zig b/test/cases/compile_errors/discarded_array_bad_elem_type.zig @@ -6,7 +6,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:9: error: expected type 'u16', found '*const [5:0]u8' diff --git a/test/cases/compile_errors/discarding_error_value.zig b/test/cases/compile_errors/discarding_error_value.zig @@ -10,8 +10,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:12: error: error union is discarded // :2:12: note: consider using 'try', 'catch', or 'if' diff --git a/test/cases/compile_errors/div_overflow.zig b/test/cases/compile_errors/div_overflow.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :4:11: error: overflow of integer type 'i8' with value '128' diff --git a/test/cases/compile_errors/double_pointer_to_anyopaque_pointer.zig b/test/cases/compile_errors/double_pointer_to_anyopaque_pointer.zig @@ -23,8 +23,6 @@ export fn entry4() void { } // 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' diff --git a/test/cases/compile_errors/duplicate-unused_labels.zig b/test/cases/compile_errors/duplicate-unused_labels.zig @@ -29,7 +29,6 @@ comptime { } // error -// target=native // // :3:9: error: redefinition of label 'blk' // :2:5: note: previous definition here diff --git a/test/cases/compile_errors/duplicate_boolean_switch_value.zig b/test/cases/compile_errors/duplicate_boolean_switch_value.zig @@ -16,8 +16,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :5:9: error: duplicate switch value // :13:9: error: duplicate switch value diff --git a/test/cases/compile_errors/duplicate_enum_field.zig b/test/cases/compile_errors/duplicate_enum_field.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: duplicate enum member name 'Bar' // :3:5: note: duplicate name here diff --git a/test/cases/compile_errors/duplicate_error_in_switch.zig b/test/cases/compile_errors/duplicate_error_in_switch.zig @@ -15,8 +15,6 @@ fn foo(x: i32) !void { } // error -// backend=stage2 -// target=native // // :5:9: error: duplicate switch value // :3:9: note: previous value here diff --git a/test/cases/compile_errors/duplicate_error_value_in_error_set.zig b/test/cases/compile_errors/duplicate_error_value_in_error_set.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:5: error: duplicate error set field 'Bar' // :2:5: note: previous declaration here diff --git a/test/cases/compile_errors/duplicate_field_in_anonymous_struct_literal.zig b/test/cases/compile_errors/duplicate_field_in_anonymous_struct_literal.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:14: error: duplicate struct field name // :7:14: note: duplicate name here diff --git a/test/cases/compile_errors/duplicate_field_in_discarded_anon_init.zig b/test/cases/compile_errors/duplicate_field_in_discarded_anon_init.zig @@ -3,8 +3,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:13: error: duplicate struct field name // :2:21: note: duplicate name here diff --git a/test/cases/compile_errors/duplicate_field_in_struct_value_expression.zig b/test/cases/compile_errors/duplicate_field_in_struct_value_expression.zig @@ -14,8 +14,6 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :8:10: error: duplicate struct field name // :11:10: note: duplicate name here diff --git a/test/cases/compile_errors/duplicate_struct_field.zig b/test/cases/compile_errors/duplicate_struct_field.zig @@ -21,8 +21,6 @@ export fn b() void { } // error -// backend=stage2 -// target=native // // :2:5: error: duplicate struct member name 'Bar' // :3:5: note: duplicate name here diff --git a/test/cases/compile_errors/embedFile_with_bogus_file.zig b/test/cases/compile_errors/embedFile_with_bogus_file.zig @@ -5,7 +5,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:29: error: unable to open 'bogus.txt': FileNotFound diff --git a/test/cases/compile_errors/embed_outside_package.zig b/test/cases/compile_errors/embed_outside_package.zig @@ -3,6 +3,5 @@ export fn a() usize { } // error -// target=native // //:2:23: error: embed of file outside package path: '/root/foo' diff --git a/test/cases/compile_errors/empty_char_lit.zig b/test/cases/compile_errors/empty_char_lit.zig @@ -3,7 +3,5 @@ export fn entry() u8 { } // error -// backend=stage2 -// target=native // // :2:12: error: empty character literal diff --git a/test/cases/compile_errors/empty_for_loop_body.zig b/test/cases/compile_errors/empty_for_loop_body.zig @@ -3,7 +3,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:23: error: expected block or assignment, found ';' diff --git a/test/cases/compile_errors/empty_if_body.zig b/test/cases/compile_errors/empty_if_body.zig @@ -3,7 +3,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:13: error: expected block or assignment, found ';' diff --git a/test/cases/compile_errors/empty_switch_on_an_integer.zig b/test/cases/compile_errors/empty_switch_on_an_integer.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:5: error: switch must handle all possibilities diff --git a/test/cases/compile_errors/empty_while_loop_body.zig b/test/cases/compile_errors/empty_while_loop_body.zig @@ -3,7 +3,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:16: error: expected block or assignment, found ';' diff --git a/test/cases/compile_errors/enumFromInt_on_non-exhaustive_enums_checks_int_in_range.zig b/test/cases/compile_errors/enumFromInt_on_non-exhaustive_enums_checks_int_in_range.zig @@ -4,8 +4,6 @@ pub export fn entry() void { } // error -// target=native -// backend=stage2 // // :3:24: error: int value '100' out of range of non-exhaustive enum 'tmp.entry.E' // :2:15: note: enum declared here diff --git a/test/cases/compile_errors/enum_backed_by_comptime_int_must_be_casted_from_comptime_value.zig b/test/cases/compile_errors/enum_backed_by_comptime_int_must_be_casted_from_comptime_value.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:31: error: unable to resolve comptime value // :6:31: note: value casted to enum with 'comptime_int' tag type must be comptime-known diff --git a/test/cases/compile_errors/enum_backed_by_comptime_int_must_be_comptime.zig b/test/cases/compile_errors/enum_backed_by_comptime_int_must_be_comptime.zig @@ -5,7 +5,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:12: error: variable of type 'tmp.entry.E' must be const or comptime diff --git a/test/cases/compile_errors/enum_field_value_references_enum.zig b/test/cases/compile_errors/enum_field_value_references_enum.zig @@ -9,7 +9,5 @@ export fn entry() void { const D = 1; // error -// backend=stage2 -// target=native // // :1:5: error: dependency loop detected diff --git a/test/cases/compile_errors/enum_in_field_count_range_but_not_matching_tag.zig b/test/cases/compile_errors/enum_in_field_count_range_but_not_matching_tag.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:20: error: enum 'tmp.Foo' has no tag with value '0' // :1:13: note: enum declared here diff --git a/test/cases/compile_errors/enum_value_already_taken.zig b/test/cases/compile_errors/enum_value_already_taken.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:9: error: enum tag value 60 already taken // :4:9: note: other occurrence here diff --git a/test/cases/compile_errors/enum_with_declarations_unavailable_for_reify_type.zig b/test/cases/compile_errors/enum_with_declarations_unavailable_for_reify_type.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:9: error: reified enums must have no decls diff --git a/test/cases/compile_errors/error_in_call_builtin_args.zig b/test/cases/compile_errors/error_in_call_builtin_args.zig @@ -8,8 +8,6 @@ pub export fn entry1() void { } // error -// backend=stage2 -// target=native // // :3:30: error: fractional component prevents float value '12.34' from coercion to type 'u32' // :7:23: error: fractional component prevents float value '12.34' from coercion to type 'u32' diff --git a/test/cases/compile_errors/error_in_typeof_param.zig b/test/cases/compile_errors/error_in_typeof_param.zig @@ -7,8 +7,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:31: error: unable to resolve comptime value // :6:31: note: value casted to 'comptime_int' must be comptime-known diff --git a/test/cases/compile_errors/error_not_handled_in_switch.zig b/test/cases/compile_errors/error_not_handled_in_switch.zig @@ -13,8 +13,6 @@ fn foo(x: i32) !void { } // error -// backend=stage2 -// target=native // // :2:26: error: switch must handle all possibilities // :2:26: note: unhandled error value: 'error.Bar' diff --git a/test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig b/test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:18: error: expected type '*const fn (i32) void', found '*const fn (bool) void' // :8:18: note: pointer type child 'fn (bool) void' cannot cast into pointer type child 'fn (i32) void' diff --git a/test/cases/compile_errors/error_set_cannot_capture_by_reference.zig b/test/cases/compile_errors/error_set_cannot_capture_by_reference.zig @@ -9,7 +9,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:23: error: error set cannot be captured by reference diff --git a/test/cases/compile_errors/error_set_membership.zig b/test/cases/compile_errors/error_set_membership.zig @@ -24,7 +24,6 @@ pub fn main() Error!void { } // error -// backend=stage2 // target=x86_64-linux // // :23:29: error: expected type 'error{InvalidCharacter}', found '@typeInfo(@typeInfo(@TypeOf(tmp.fooey)).@"fn".return_type.?).error_union.error_set' diff --git a/test/cases/compile_errors/error_union_operator_with_non_error_set_LHS.zig b/test/cases/compile_errors/error_union_operator_with_non_error_set_LHS.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: expected error set type, found 'i32' diff --git a/test/cases/compile_errors/error_when_evaluating_return_type.zig b/test/cases/compile_errors/error_when_evaluating_return_type.zig @@ -11,7 +11,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:19: error: expected type 'i32', found 'type' diff --git a/test/cases/compile_errors/errors_in_for_loop_bodies_are_propagated.zig b/test/cases/compile_errors/errors_in_for_loop_bodies_are_propagated.zig @@ -4,7 +4,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:26: error: expected 1 argument, found 2 diff --git a/test/cases/compile_errors/exact division failure.zig b/test/cases/compile_errors/exact division failure.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: exact division produced remainder diff --git a/test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig b/test/cases/compile_errors/exceeded_maximum_bit_width_of_integer.zig @@ -8,8 +8,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:15: error: primitive integer type 'u65536' exceeds maximum bit width of 65535 // :6:12: error: primitive integer type 'i65536' exceeds maximum bit width of 65535 diff --git a/test/cases/compile_errors/expected_optional_type_got_container.zig b/test/cases/compile_errors/expected_optional_type_got_container.zig @@ -9,8 +9,6 @@ fn bar() X { } // error -// backend=stage2 -// target=native // // :2:15: error: expected optional type, found 'tmp.X' // :6:11: note: enum declared here diff --git a/test/cases/compile_errors/explicit_cast_float_literal_to_integer_when_there_is_a_fraction_component.zig b/test/cases/compile_errors/explicit_cast_float_literal_to_integer_when_there_is_a_fraction_component.zig @@ -3,7 +3,5 @@ export fn entry() i32 { } // error -// backend=stage2 -// target=native // // :2:21: error: fractional component prevents float value '12.34' from coercion to type 'i32' diff --git a/test/cases/compile_errors/explicit_error_set_cast_known_at_comptime_violates_error_sets.zig b/test/cases/compile_errors/explicit_error_set_cast_known_at_comptime_violates_error_sets.zig @@ -7,7 +7,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :5:21: error: 'error.B' not a member of error set 'error{A,C}' diff --git a/test/cases/compile_errors/explicitly_casting_non_tag_type_to_enum.zig b/test/cases/compile_errors/explicitly_casting_non_tag_type_to_enum.zig @@ -12,7 +12,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :10:39: error: expected integer type, found 'f32' diff --git a/test/cases/compile_errors/export_with_empty_name_string.zig b/test/cases/compile_errors/export_with_empty_name_string.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:25: error: exported symbol name cannot be empty diff --git a/test/cases/compile_errors/exported_enum_without_explicit_integer_tag_type.zig b/test/cases/compile_errors/exported_enum_without_explicit_integer_tag_type.zig @@ -8,8 +8,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:5: error: unable to export type 'type' // :7:5: error: unable to export type 'tmp.E' diff --git a/test/cases/compile_errors/exported_function_uses_invalid_type.zig b/test/cases/compile_errors/exported_function_uses_invalid_type.zig @@ -8,6 +8,5 @@ export fn foo() void { // the original bug leading to this test occurred only with the LLVM backend. // error -// backend=stage2,llvm // // :2:33: error: expected type 'u32', found '*const [11:0]u8' diff --git a/test/cases/compile_errors/extern_function_with_unspecified_calling_convention.zig b/test/cases/compile_errors/extern_function_with_unspecified_calling_convention.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:8: error: extern structs cannot contain fields of type '*const fn () void' // :2:8: note: extern function must specify calling convention diff --git a/test/cases/compile_errors/extern_packed_on_opaque.zig b/test/cases/compile_errors/extern_packed_on_opaque.zig @@ -7,8 +7,6 @@ export fn foo(x: *X, y: *Y) void { } // error -// backend=stage2 -// target=native // // :1:11: error: opaque types do not support 'packed' or 'extern' // :2:11: error: opaque types do not support 'packed' or 'extern' diff --git a/test/cases/compile_errors/extern_struct_with_extern-compatible_but_inferred_integer_tag_type.zig b/test/cases/compile_errors/extern_struct_with_extern-compatible_but_inferred_integer_tag_type.zig @@ -38,8 +38,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :33:8: error: extern structs cannot contain fields of type 'tmp.E' // :33:8: note: enum tag type 'u9' is not extern compatible diff --git a/test/cases/compile_errors/extern_struct_with_non-extern-compatible_integer_tag_type.zig b/test/cases/compile_errors/extern_struct_with_non-extern-compatible_integer_tag_type.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:8: error: extern structs cannot contain fields of type 'tmp.E' // :3:8: note: enum tag type 'u31' is not extern compatible diff --git a/test/cases/compile_errors/extern_union_field_missing_type.zig b/test/cases/compile_errors/extern_union_field_missing_type.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: union field missing type diff --git a/test/cases/compile_errors/extern_union_given_enum_tag_type.zig b/test/cases/compile_errors/extern_union_given_enum_tag_type.zig @@ -14,7 +14,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:30: error: extern union does not support enum tag type diff --git a/test/cases/compile_errors/extern_variable_has_no_type.zig b/test/cases/compile_errors/extern_variable_has_no_type.zig @@ -4,7 +4,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:8: error: unable to infer variable type diff --git a/test/cases/compile_errors/extern_variable_has_non_extern_type.zig b/test/cases/compile_errors/extern_variable_has_non_extern_type.zig @@ -4,8 +4,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:17: error: extern variable cannot have type 'u3' // :1:17: note: only integers with 0 or power of two bits are extern compatible diff --git a/test/cases/compile_errors/extra_comma_in_destructure.zig b/test/cases/compile_errors/extra_comma_in_destructure.zig @@ -4,7 +4,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:23: error: expected expression or var decl, found '=' diff --git a/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig b/test/cases/compile_errors/fieldParentPtr-bad_field_name.zig @@ -6,8 +6,6 @@ export fn foo(a: *i32) *Foo { } // error -// backend=stage2 -// target=native // // :5:28: error: no field named 'a' in struct 'tmp.Foo' // :1:20: note: struct declared here diff --git a/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig b/test/cases/compile_errors/fieldParentPtr-comptime_field_ptr_not_based_on_struct.zig @@ -14,7 +14,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :12:62: error: pointer value not based on parent struct diff --git a/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig b/test/cases/compile_errors/fieldParentPtr-comptime_wrong_field_index.zig @@ -13,8 +13,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :11:41: error: field 'b' has index '1' but pointer value is index '0' of struct 'tmp.Foo' // :1:13: note: struct declared here diff --git a/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig b/test/cases/compile_errors/fieldParentPtr-field_pointer_is_not_pointer.zig @@ -6,7 +6,5 @@ export fn foo(a: i32) *const Foo { } // error -// backend=stage2 -// target=native // // :5:33: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/fieldParentPtr-non_pointer.zig b/test/cases/compile_errors/fieldParentPtr-non_pointer.zig @@ -4,7 +4,5 @@ export fn foo(a: *i32) Foo { } // error -// backend=stage2 -// target=native // // :3:12: error: expected pointer type, found 'i32' diff --git a/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig b/test/cases/compile_errors/fieldParentPtr_on_comptime_field.zig @@ -9,8 +9,6 @@ pub export fn entry2() void { } // error -// backend=stage2 -// target=native // // :5:5: error: no offset available for comptime field // :8:29: error: cannot get @fieldParentPtr of a comptime field diff --git a/test/cases/compile_errors/field_access_of_opaque_type.zig b/test/cases/compile_errors/field_access_of_opaque_type.zig @@ -10,7 +10,5 @@ fn bar(x: *MyType) bool { } // error -// backend=stage2 -// target=native // // :9:13: error: type '*tmp.MyType' does not support field access diff --git a/test/cases/compile_errors/field_access_of_slices.zig b/test/cases/compile_errors/field_access_of_slices.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:32: error: type '[]i32' has no members // :4:32: note: slice values have 'len' and 'ptr' members diff --git a/test/cases/compile_errors/field_access_of_unknown_length_pointer.zig b/test/cases/compile_errors/field_access_of_unknown_length_pointer.zig @@ -7,7 +7,5 @@ export fn entry(foo: [*]Foo) void { } // error -// backend=stage2 -// target=native // // :6:8: error: type '[*]tmp.Foo' does not support field access diff --git a/test/cases/compile_errors/field_access_of_wrapped_type.zig b/test/cases/compile_errors/field_access_of_wrapped_type.zig @@ -11,8 +11,6 @@ export fn f2() void { } // error -// backend=stage2 -// target=native // // :6:8: error: optional type '?tmp.Foo' does not support field access // :6:8: note: consider using '.?', 'orelse', or 'if' diff --git a/test/cases/compile_errors/field_type_supplied_in_an_enum.zig b/test/cases/compile_errors/field_type_supplied_in_an_enum.zig @@ -5,8 +5,6 @@ const Letter = enum { }; // error -// backend=stage2 -// target=native // // :2:8: error: enum fields do not have types // :1:16: note: consider 'union(enum)' here to make it a tagged union diff --git a/test/cases/compile_errors/file_level_struct_invalid_field_type.zig b/test/cases/compile_errors/file_level_struct_invalid_field_type.zig @@ -11,7 +11,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :7:15: error: expected type 'type', found 'fn () type' diff --git a/test/cases/compile_errors/float exact division failure.zig b/test/cases/compile_errors/float exact division failure.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: exact division produced remainder diff --git a/test/cases/compile_errors/for_discard_unbounded.zig b/test/cases/compile_errors/for_discard_unbounded.zig @@ -4,7 +4,5 @@ export fn a() void { } } // error -// backend=stage2 -// target=native // // :2:27: error: discard of unbounded counter diff --git a/test/cases/compile_errors/for_empty.zig b/test/cases/compile_errors/for_empty.zig @@ -5,7 +5,5 @@ export fn b() void { } // error -// backend=stage2 -// target=native // // :2:10: error: expected expression, found ')' diff --git a/test/cases/compile_errors/for_extra_capture.zig b/test/cases/compile_errors/for_extra_capture.zig @@ -8,7 +8,5 @@ export fn b() void { // zig fmt: on // error -// backend=stage2 -// target=native // // :3:21: error: extra capture in for loop diff --git a/test/cases/compile_errors/for_extra_condition.zig b/test/cases/compile_errors/for_extra_condition.zig @@ -5,7 +5,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:19: error: for input is not captured diff --git a/test/cases/compile_errors/for_invalid_ranges.zig b/test/cases/compile_errors/for_invalid_ranges.zig @@ -25,8 +25,6 @@ export fn e() void { } // error -// backend=stage2 -// target=native // // :2:13: error: expected type 'usize', found '*const [5:0]u8' // :7:10: error: type 'usize' cannot represent integer value '-1' diff --git a/test/cases/compile_errors/for_loop_body_expression_ignored.zig b/test/cases/compile_errors/for_loop_body_expression_ignored.zig @@ -18,8 +18,6 @@ export fn f4() void { } // error -// backend=stage2 -// target=native // // :5:30: error: value of type 'usize' ignored // :5:30: note: all non-void values must be used diff --git a/test/cases/compile_errors/for_loop_break_value_ignored.zig b/test/cases/compile_errors/for_loop_break_value_ignored.zig @@ -9,8 +9,6 @@ export fn f1() void { } // error -// backend=stage2 -// target=native // // :6:5: error: incompatible types: 'usize' and 'void' // :7:22: note: type 'usize' here diff --git a/test/cases/compile_errors/for_loop_error_union.zig b/test/cases/compile_errors/for_loop_error_union.zig @@ -7,8 +7,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :6:11: error: type '@typeInfo(@typeInfo(@TypeOf(tmp.b)).@"fn".return_type.?).error_union.error_set!u32' is not indexable and not a range // :6:11: note: for loop operand must be a range, array, slice, tuple, or vector diff --git a/test/cases/compile_errors/for_unbounded.zig b/test/cases/compile_errors/for_unbounded.zig @@ -5,7 +5,5 @@ export fn b() void { } // error -// backend=stage2 -// target=native // // :2:5: error: unbounded for loop diff --git a/test/cases/compile_errors/function-only_builtins_outside_function.zig b/test/cases/compile_errors/function-only_builtins_outside_function.zig @@ -47,8 +47,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:5: error: '@branchHint' outside function scope // :6:5: error: '@src' outside function scope diff --git a/test/cases/compile_errors/function_alignment_non_power_of_2.zig b/test/cases/compile_errors/function_alignment_non_power_of_2.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:23: error: alignment value '3' is not a power of two diff --git a/test/cases/compile_errors/function_alignment_on_unsupported_target.zig b/test/cases/compile_errors/function_alignment_on_unsupported_target.zig @@ -1,7 +1,6 @@ export fn entry() align(64) void {} // error -// backend=stage2 // target=nvptx-cuda,nvptx64-cuda,spirv32-opengl,spirv32-vulkan,spirv32-opencl,spirv64-opencl,spirv64-amdhsa,wasm32-freestanding,wasm64-freestanding // // :1:25: error: target does not support function alignment diff --git a/test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig b/test/cases/compile_errors/function_call_assigned_to_incorrect_type.zig @@ -7,8 +7,6 @@ fn concat() [16]f32 { } // error -// backend=stage2 -// target=native // // :3:17: error: expected type '[4]f32', found '[16]f32' // :3:17: note: destination has length 4 diff --git a/test/cases/compile_errors/function_parameter_is_opaque.zig b/test/cases/compile_errors/function_parameter_is_opaque.zig @@ -12,8 +12,6 @@ export fn entry3() void { } // error -// backend=stage2 -// target=native // // :3:28: error: parameter of opaque type 'tmp.FooType' not allowed // :1:17: note: opaque declared here diff --git a/test/cases/compile_errors/function_prototype_with_no_body.zig b/test/cases/compile_errors/function_prototype_with_no_body.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:1: error: non-extern function has no body diff --git a/test/cases/compile_errors/function_ptr_alignment.zig b/test/cases/compile_errors/function_ptr_alignment.zig @@ -9,7 +9,6 @@ comptime { } // error -// backend=stage2 // target=x86_64-linux // // :8:41: error: expected type '*align(2) const fn () void', found '*const fn () void' diff --git a/test/cases/compile_errors/function_returning_opaque_type.zig b/test/cases/compile_errors/function_returning_opaque_type.zig @@ -4,8 +4,6 @@ export fn bar() FooType { } // error -// backend=stage2 -// target=native // // :2:17: error: opaque return type 'tmp.FooType' not allowed // :1:17: note: opaque declared here diff --git a/test/cases/compile_errors/function_type_coercion.zig b/test/cases/compile_errors/function_type_coercion.zig @@ -10,8 +10,6 @@ export fn wrong_return_type() void { } // error -// backend=stage2,llvm -// target=native // // :3:25: error: expected type 'fn () void', found 'fn (i32) void' // :3:25: note: function with 1 parameters cannot cast into a function with 0 parameters diff --git a/test/cases/compile_errors/function_type_named.zig b/test/cases/compile_errors/function_type_named.zig @@ -1,7 +1,5 @@ const aFunc = fn someFunc(x: i32) void; // error -// backend=stage2 -// target=native // // :1:18: error: function type cannot have a name diff --git a/test/cases/compile_errors/function_with_invalid_return_type.zig b/test/cases/compile_errors/function_with_invalid_return_type.zig @@ -1,7 +1,5 @@ export fn foo() boid {} // error -// backend=stage2 -// target=native // // :1:17: error: use of undeclared identifier 'boid' diff --git a/test/cases/compile_errors/generic_function_call_assigned_to_incorrect_type.zig b/test/cases/compile_errors/generic_function_call_assigned_to_incorrect_type.zig @@ -7,7 +7,5 @@ fn myAlloc(comptime arg: type) anyerror!arg { } // error -// backend=stage2 -// target=native // // :3:18: error: expected type '[]i32', found 'anyerror!i32' diff --git a/test/cases/compile_errors/generic_function_returning_opaque_type.zig b/test/cases/compile_errors/generic_function_returning_opaque_type.zig @@ -0,0 +1,16 @@ +fn generic(comptime T: type) T { + return undefined; +} +const MyOpaque = opaque {}; +export fn foo() void { + _ = generic(MyOpaque); +} +export fn bar() void { + _ = generic(anyopaque); +} + +// error +// +// :1:30: error: opaque return type 'tmp.MyOpaque' not allowed +// :4:18: note: opaque declared here +// :1:30: error: opaque return type 'anyopaque' not allowed diff --git a/test/cases/compile_errors/generic_instantiation_failure.zig b/test/cases/compile_errors/generic_instantiation_failure.zig @@ -19,8 +19,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :18:43: error: value of type 'type' ignored // :18:43: note: all non-void values must be used diff --git a/test/cases/compile_errors/global_var_struct_init_in_comptime_block.zig b/test/cases/compile_errors/global_var_struct_init_in_comptime_block.zig @@ -7,8 +7,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :6:17: error: unable to evaluate comptime expression // :6:17: note: operation is runtime due to this operand diff --git a/test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig b/test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig @@ -4,7 +4,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:32: error: alignment value '3' is not a power of two diff --git a/test/cases/compile_errors/hasDecl_with_non-container.zig b/test/cases/compile_errors/hasDecl_with_non-container.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:18: error: expected struct, enum, union, or opaque; found 'i32' diff --git a/test/cases/compile_errors/helpful_return_type_error_message.zig b/test/cases/compile_errors/helpful_return_type_error_message.zig @@ -16,8 +16,6 @@ export fn quux() u32 { } // error -// backend=stage2 -// target=native // // :2:18: error: expected type 'u32', found 'error{Ohno}' // :1:17: note: function cannot return an error diff --git a/test/cases/compile_errors/if_condition_is_bool_not_int.zig b/test/cases/compile_errors/if_condition_is_bool_not_int.zig @@ -7,8 +7,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :2:9: error: expected type 'bool', found 'comptime_int' // :6:18: error: expected type 'bool', found 'comptime_int' diff --git a/test/cases/compile_errors/ignored_assert-err-ok_return_value.zig b/test/cases/compile_errors/ignored_assert-err-ok_return_value.zig @@ -6,8 +6,6 @@ fn bar() anyerror!i32 { } // error -// backend=stage2 -// target=native // // :2:11: error: value of type 'i32' ignored // :2:11: note: all non-void values must be used diff --git a/test/cases/compile_errors/ignored_comptime_statement_value.zig b/test/cases/compile_errors/ignored_comptime_statement_value.zig @@ -5,8 +5,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:9: error: value of type 'comptime_int' ignored // :3:9: note: all non-void values must be used diff --git a/test/cases/compile_errors/ignored_comptime_value.zig b/test/cases/compile_errors/ignored_comptime_value.zig @@ -9,8 +9,6 @@ fn bar() u8 { } // error -// backend=stage2 -// target=native // // :2:5: error: value of type 'comptime_int' ignored // :2:5: note: all non-void values must be used diff --git a/test/cases/compile_errors/ignored_deferred_function_call.zig b/test/cases/compile_errors/ignored_deferred_function_call.zig @@ -13,8 +13,6 @@ fn bar2() anyerror { } // error -// backend=stage2 -// target=native // // :2:14: error: error union is ignored // :2:14: note: consider using 'try', 'catch', or 'if' diff --git a/test/cases/compile_errors/ignored_deferred_statement_value.zig b/test/cases/compile_errors/ignored_deferred_statement_value.zig @@ -5,8 +5,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:9: error: value of type 'comptime_int' ignored // :3:9: note: all non-void values must be used diff --git a/test/cases/compile_errors/ignored_expression_in_while_continuation.zig b/test/cases/compile_errors/ignored_expression_in_while_continuation.zig @@ -23,8 +23,6 @@ fn bad2() anyerror { } // error -// backend=stage2 -// target=native // // :2:24: error: error union is ignored // :2:24: note: consider using 'try', 'catch', or 'if' diff --git a/test/cases/compile_errors/ignored_return_value.zig b/test/cases/compile_errors/ignored_return_value.zig @@ -6,8 +6,6 @@ fn bar() i32 { } // error -// backend=stage2 -// target=native // // :2:8: error: value of type 'i32' ignored // :2:8: note: all non-void values must be used diff --git a/test/cases/compile_errors/ignored_statement_value.zig b/test/cases/compile_errors/ignored_statement_value.zig @@ -3,8 +3,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:5: error: value of type 'comptime_int' ignored // :2:5: note: all non-void values must be used diff --git a/test/cases/compile_errors/illegal_comparison_of_types.zig b/test/cases/compile_errors/illegal_comparison_of_types.zig @@ -17,8 +17,6 @@ export fn entry2() usize { } // error -// backend=stage2 -// target=native // // :2:14: error: operator == not allowed for type '[]u8' // :9:16: error: operator == not allowed for type 'tmp.EnumWithData' diff --git a/test/cases/compile_errors/illegal_operation_on_logical_ptr.zig b/test/cases/compile_errors/illegal_operation_on_logical_ptr.zig @@ -35,7 +35,6 @@ export fn ptrIntArithmetic() void { } // error -// backend=stage2 // target=spirv64-vulkan // // :3:8: error: illegal operation on logical pointer of type '[*]u8' diff --git a/test/cases/compile_errors/implicit_array_ptr_cast_sentinel_mismatch.zig b/test/cases/compile_errors/implicit_array_ptr_cast_sentinel_mismatch.zig @@ -12,8 +12,6 @@ pub export fn entry1() void { } // error -// backend=stage2 -// target=native // // :2:12: error: expected type '[:255]const u8', found '*const [4:0]u8' // :2:12: note: pointer sentinel '0' cannot cast into pointer sentinel '255' diff --git a/test/cases/compile_errors/implicit_cast_between_C_pointer_and_Zig_pointer-bad_const-align-child.zig b/test/cases/compile_errors/implicit_cast_between_C_pointer_and_Zig_pointer-bad_const-align-child.zig @@ -30,8 +30,6 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :3:27: error: expected type '*align(4) u8', found '[*c]u8' // :3:27: note: pointer alignment '1' cannot cast into pointer alignment '4' diff --git a/test/cases/compile_errors/implicit_cast_const_array_to_mutable_slice.zig b/test/cases/compile_errors/implicit_cast_const_array_to_mutable_slice.zig @@ -20,8 +20,6 @@ export fn entry3() void { } // error -// backend=stage2 -// target=native // // :3:26: error: expected type '[]u8', found '*const [1]u8' // :3:26: note: cast discards const qualifier diff --git a/test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig b/test/cases/compile_errors/implicit_cast_from_array_to_mutable_slice.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:9: error: array literal requires address-of operator (&) to coerce to slice type '[]i32' 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 @@ -11,8 +11,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:14: error: expected type 'f32', found 'f64' // :9:19: error: expected type 'f32', found 'f64' diff --git a/test/cases/compile_errors/implicit_cast_of_error_set_not_a_subset.zig b/test/cases/compile_errors/implicit_cast_of_error_set_not_a_subset.zig @@ -9,8 +9,6 @@ fn foo(set1: Set1) void { } // error -// backend=stage2 -// target=native // // :7:21: error: expected type 'error{A,C}', found 'error{A,B}' // :7:21: note: 'error.B' not a member of destination error set diff --git a/test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig b/test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig @@ -7,8 +7,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :3:21: error: expected type '[*c]u8', found 'u65' // :3:21: note: unsigned 64-bit int cannot represent all possible unsigned 65-bit values diff --git a/test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig b/test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig @@ -20,8 +20,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :6:24: error: expected type '*const [*]const u8', found '[*c]const [*c]const u8' // :6:24: note: '[*c]const [*c]const u8' could have null values which are illegal in type '*const [*]const u8' diff --git a/test/cases/compile_errors/implicit_casting_null_c_pointer_to_zig_pointer.zig b/test/cases/compile_errors/implicit_casting_null_c_pointer_to_zig_pointer.zig @@ -6,7 +6,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:26: error: null pointer casted to type '*u8' diff --git a/test/cases/compile_errors/implicit_dependency_on_libc.zig b/test/cases/compile_errors/implicit_dependency_on_libc.zig @@ -4,7 +4,6 @@ export fn entry() void { } // error -// backend=stage2 // target=native-linux // // :1:8: error: dependency on libc must be explicitly specified in the build command diff --git a/test/cases/compile_errors/implicit_semicolon-block_expr.zig b/test/cases/compile_errors/implicit_semicolon-block_expr.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:11: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-block_statement.zig b/test/cases/compile_errors/implicit_semicolon-block_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:9: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig b/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:20: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig b/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:18: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-defer.zig b/test/cases/compile_errors/implicit_semicolon-defer.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:15: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-for_expression.zig b/test/cases/compile_errors/implicit_semicolon-for_expression.zig @@ -9,7 +9,5 @@ export fn entry() void { fn foo() void {} // error -// backend=stage2 -// target=native // // :4:26: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-for_statement.zig b/test/cases/compile_errors/implicit_semicolon-for_statement.zig @@ -9,7 +9,5 @@ export fn entry() void { fn foo() void {} // error -// backend=stage2 -// target=native // // :4:24: error: expected ';' or 'else' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:45: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:47: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:37: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:37: error: expected ';' or 'else' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig b/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:28: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig b/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:28: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if_expression.zig b/test/cases/compile_errors/implicit_semicolon-if_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:20: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-if_statement.zig b/test/cases/compile_errors/implicit_semicolon-if_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:18: error: expected ';' or 'else' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-test_expression.zig b/test/cases/compile_errors/implicit_semicolon-test_expression.zig @@ -9,7 +9,5 @@ export fn entry() void { fn foo() void {} // error -// backend=stage2 -// target=native // // :4:26: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-test_statement.zig b/test/cases/compile_errors/implicit_semicolon-test_statement.zig @@ -9,7 +9,5 @@ export fn entry() void { fn foo() void {} // error -// backend=stage2 -// target=native // // :4:24: error: expected ';' or 'else' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig b/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:28: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig b/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:26: error: expected ';' or 'else' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-while_expression.zig b/test/cases/compile_errors/implicit_semicolon-while_expression.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:23: error: expected ';' after statement diff --git a/test/cases/compile_errors/implicit_semicolon-while_statement.zig b/test/cases/compile_errors/implicit_semicolon-while_statement.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:18: error: expected ';' or 'else' after statement diff --git a/test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig b/test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :9:22: error: expected type 'u2', found 'tmp.Small' // :1:15: note: enum declared here diff --git a/test/cases/compile_errors/implicitly_increasing_pointer_alignment.zig b/test/cases/compile_errors/implicitly_increasing_pointer_alignment.zig @@ -13,8 +13,6 @@ fn bar(x: *u32) void { } // error -// backend=stage2 -// target=native // // :8:9: error: expected type '*u32', found '*align(1) u32' // :8:9: note: pointer alignment '1' cannot cast into pointer alignment '4' diff --git a/test/cases/compile_errors/implicitly_increasing_slice_alignment.zig b/test/cases/compile_errors/implicitly_increasing_slice_alignment.zig @@ -14,8 +14,6 @@ fn bar(x: []u32) void { } // error -// backend=stage2 -// target=native // // :9:22: error: expected type '*[1]u32', found '*align(1) u32' // :9:22: note: pointer alignment '1' cannot cast into pointer alignment '4' diff --git a/test/cases/compile_errors/in_memory_coerce_vector_to_array.zig b/test/cases/compile_errors/in_memory_coerce_vector_to_array.zig @@ -8,8 +8,6 @@ fn bar() anyerror!@Vector(4, u32) { return .{ 1, 2, 3, 4 }; } // error -// backend=stage2 -// target=native // // :5:15: error: expected type 'anyerror![4]u32', found 'anyerror!@Vector(4, u32)' // :5:15: note: error union payload '@Vector(4, u32)' cannot cast into error union payload '[4]u32' diff --git a/test/cases/compile_errors/incompatible sub-byte fields.zig b/test/cases/compile_errors/incompatible sub-byte fields.zig @@ -22,8 +22,6 @@ export fn entry() void { } } // error -// backend=stage2 -// target=native // // :15:17: error: incompatible types: '*align(1:0:1) u2' and '*align(2:8:2) u2' // :16:14: note: type '*align(1:0:1) u2' here diff --git a/test/cases/compile_errors/incompatible_sentinels.zig b/test/cases/compile_errors/incompatible_sentinels.zig @@ -16,8 +16,6 @@ export fn entry4() void { } // error -// backend=stage2 -// target=native // // :4:12: error: expected type '[*:0]u8', found '[*:255]u8' // :4:12: note: pointer sentinel '255' cannot cast into pointer sentinel '0' diff --git a/test/cases/compile_errors/incorrect_return_type.zig b/test/cases/compile_errors/incorrect_return_type.zig @@ -15,8 +15,6 @@ fn bar() B { } // error -// backend=stage2 -// target=native // // :8:15: error: expected type 'tmp.A', found 'tmp.B' // :10:11: note: struct declared here diff --git a/test/cases/compile_errors/incorrect_type_to_memset_memcpy.zig b/test/cases/compile_errors/incorrect_type_to_memset_memcpy.zig @@ -63,8 +63,6 @@ pub export fn memset_array() void { } // error -// backend=stage2 -// target=native // // :5:5: error: unknown copy length // :5:18: note: destination type '[*]u8' provides no length diff --git a/test/cases/compile_errors/increase_pointer_alignment_in_ptrCast.zig b/test/cases/compile_errors/increase_pointer_alignment_in_ptrCast.zig @@ -5,8 +5,6 @@ export fn entry() u32 { } // error -// backend=stage2 -// target=native // // :3:23: error: @ptrCast increases pointer alignment // :3:32: note: '*u8' has alignment '1' diff --git a/test/cases/compile_errors/indexing_an_array_of_size_zero.zig b/test/cases/compile_errors/indexing_an_array_of_size_zero.zig @@ -5,7 +5,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:27: error: indexing into empty array is not allowed diff --git a/test/cases/compile_errors/indexing_an_array_of_size_zero_with_runtime_index.zig b/test/cases/compile_errors/indexing_an_array_of_size_zero_with_runtime_index.zig @@ -7,7 +7,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :5:27: error: indexing into empty array is not allowed diff --git a/test/cases/compile_errors/indexing_non-tuple_struct.zig b/test/cases/compile_errors/indexing_non-tuple_struct.zig @@ -5,8 +5,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :4:6: error: type 'tmp.a.S' does not support indexing // :4:6: note: operand must be an array, slice, tuple, or vector diff --git a/test/cases/compile_errors/indexing_single-item_pointer.zig b/test/cases/compile_errors/indexing_single-item_pointer.zig @@ -3,8 +3,6 @@ export fn entry(ptr: *i32) i32 { } // error -// backend=stage2 -// target=native // // :2:15: error: type '*i32' does not support indexing // :2:15: note: operand must be an array, slice, tuple, or vector diff --git a/test/cases/compile_errors/indirect_struct_loop.zig b/test/cases/compile_errors/indirect_struct_loop.zig @@ -12,7 +12,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:11: error: struct 'tmp.A' depends on itself diff --git a/test/cases/compile_errors/inferred_array_size_invalid_here.zig b/test/cases/compile_errors/inferred_array_size_invalid_here.zig @@ -9,8 +9,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:16: error: unable to infer array size // :6:35: error: unable to infer array size diff --git a/test/cases/compile_errors/initializing_array_with_struct_syntax.zig b/test/cases/compile_errors/initializing_array_with_struct_syntax.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:15: error: initializing array with struct syntax diff --git a/test/cases/compile_errors/inline_underscore_prong.zig b/test/cases/compile_errors/inline_underscore_prong.zig @@ -9,7 +9,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:16: error: cannot inline '_' prong diff --git a/test/cases/compile_errors/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,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:13: error: struct 'tmp.Foo' depends on itself 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 @@ -9,7 +9,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:13: error: union 'tmp.Foo' depends on itself diff --git a/test/cases/compile_errors/intFromFloat_comptime_safety.zig b/test/cases/compile_errors/intFromFloat_comptime_safety.zig @@ -9,8 +9,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:31: error: float value '-129.10000610351562' cannot be stored in integer type 'i8' // :5:31: error: float value '-1.100000023841858' cannot be stored in integer type 'u8' diff --git a/test/cases/compile_errors/intFromPtr_0_to_non_optional_pointer.zig b/test/cases/compile_errors/intFromPtr_0_to_non_optional_pointer.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:33: error: pointer type '*i32' does not allow address zero diff --git a/test/cases/compile_errors/int_from_enum_undefined.zig b/test/cases/compile_errors/int_from_enum_undefined.zig @@ -6,8 +6,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :5:22: error: cannot use @intFromEnum on empty enum 'tmp.a.E' // :2:15: note: enum declared here diff --git a/test/cases/compile_errors/int_from_ptr_to_optional.zig b/test/cases/compile_errors/int_from_ptr_to_optional.zig @@ -5,8 +5,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :4:9: error: unable to evaluate comptime expression // :4:21: note: operation is runtime due to this operand diff --git a/test/cases/compile_errors/int_to_err_global_invalid_number.zig b/test/cases/compile_errors/int_to_err_global_invalid_number.zig @@ -9,7 +9,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :7:27: error: integer value '3' represents no error diff --git a/test/cases/compile_errors/int_to_err_non_global_invalid_number.zig b/test/cases/compile_errors/int_to_err_non_global_invalid_number.zig @@ -13,7 +13,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :11:21: error: 'error.B' not a member of error set 'error{A,C}' diff --git a/test/cases/compile_errors/integer_cast_truncates_bits.zig b/test/cases/compile_errors/integer_cast_truncates_bits.zig @@ -20,8 +20,6 @@ export fn entry4() void { } // error -// backend=stage2 -// target=native // // :3:31: error: type 'u8' cannot represent integer value '300' // :8:22: error: type 'u8' cannot represent integer value '300' diff --git a/test/cases/compile_errors/integer_overflow_error.zig b/test/cases/compile_errors/integer_overflow_error.zig @@ -4,7 +4,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:15: error: type 'u8' cannot represent integer value '300' diff --git a/test/cases/compile_errors/integer_underflow_error.zig b/test/cases/compile_errors/integer_underflow_error.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:84: error: overflow of integer type 'usize' with value '-1' diff --git a/test/cases/compile_errors/invalid_address_space_coercion.zig b/test/cases/compile_errors/invalid_address_space_coercion.zig @@ -7,7 +7,6 @@ pub fn main() void { // error // output_mode=Exe -// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // // :2:12: error: expected type '*i32', found '*addrspace(.gs) i32' diff --git a/test/cases/compile_errors/invalid_array_assignment_with_valid_elems.zig b/test/cases/compile_errors/invalid_array_assignment_with_valid_elems.zig @@ -5,7 +5,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // 3:23: error: expected type '[3]i32', found '[3]u16' diff --git a/test/cases/compile_errors/invalid_array_elem_ty.zig b/test/cases/compile_errors/invalid_array_elem_ty.zig @@ -6,7 +6,5 @@ pub export fn entry() void { } // error -// target=native -// backend=stage2 // // :5:12: error: expected type 'type', found 'fn () type' diff --git a/test/cases/compile_errors/invalid_array_elem_type.zig b/test/cases/compile_errors/invalid_array_elem_type.zig @@ -6,8 +6,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:12: error: array of opaque type 'anyopaque' not allowed // :5:12: error: array of 'noreturn' not allowed diff --git a/test/cases/compile_errors/invalid_assignments.zig b/test/cases/compile_errors/invalid_assignments.zig @@ -11,8 +11,6 @@ export fn entry4() void { } // error -// backend=stage2 -// target=native // // :3:6: error: invalid left-hand side to assignment // :7:7: error: invalid left-hand side to assignment diff --git a/test/cases/compile_errors/invalid_bit_pointer.zig b/test/cases/compile_errors/invalid_bit_pointer.zig @@ -6,8 +6,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:18: error: packed type 'u8' at bit offset 32 starts 0 bits after the end of a 4 byte host integer // :5:18: error: packed type 'u8' at bit offset 25 ends 1 bits after the end of a 4 byte host integer diff --git a/test/cases/compile_errors/invalid_break_expression.zig b/test/cases/compile_errors/invalid_break_expression.zig @@ -3,7 +3,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:5: error: break expression outside loop diff --git a/test/cases/compile_errors/invalid_builtin_fn.zig b/test/cases/compile_errors/invalid_builtin_fn.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:8: error: invalid builtin function: '@bogus' diff --git a/test/cases/compile_errors/invalid_capture_type.zig b/test/cases/compile_errors/invalid_capture_type.zig @@ -17,8 +17,6 @@ export fn f5() void { } // error -// backend=stage2 -// target=native // // :2:9: error: expected optional type, found 'bool' // :7:9: error: expected optional type, found 'usize' diff --git a/test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig b/test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig @@ -11,8 +11,6 @@ fn foo(x: usize) void { } // error -// backend=stage2 -// target=native // // :9:10: error: expected type 'usize', found 'tmp.E' // :1:11: note: enum declared here diff --git a/test/cases/compile_errors/invalid_coercion_in_aggregate_literal.zig b/test/cases/compile_errors/invalid_coercion_in_aggregate_literal.zig @@ -14,8 +14,6 @@ export fn invalidStructField() u8 { } // error -// backend=stage2 -// target=native // // :2:41: error: type 'u8' cannot represent integer value '256' // :7:49: error: type 'u8' cannot represent integer value '256' diff --git a/test/cases/compile_errors/invalid_coercion_in_labeled_break.zig b/test/cases/compile_errors/invalid_coercion_in_labeled_break.zig @@ -6,7 +6,5 @@ export fn invalidBreak() u8 { } // error -// backend=stage2 -// target=native // // :3:22: error: type 'u8' cannot represent integer value '256' diff --git a/test/cases/compile_errors/invalid_compare_string.zig b/test/cases/compile_errors/invalid_compare_string.zig @@ -27,8 +27,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:11: error: cannot compare strings with != // :7:11: error: cannot compare strings with == diff --git a/test/cases/compile_errors/invalid_comparison_for_function_pointers.zig b/test/cases/compile_errors/invalid_comparison_for_function_pointers.zig @@ -6,7 +6,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :2:21: error: operator > not allowed for type 'fn () void' diff --git a/test/cases/compile_errors/invalid_comptime_fields.zig b/test/cases/compile_errors/invalid_comptime_fields.zig @@ -12,8 +12,6 @@ const X = extern struct { }; // error -// backend=stage2 -// target=native // // :2:5: error: union fields cannot be marked comptime // :5:5: error: enum fields cannot be marked comptime diff --git a/test/cases/compile_errors/invalid_continue_expression.zig b/test/cases/compile_errors/invalid_continue_expression.zig @@ -3,7 +3,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:5: error: continue expression outside loop diff --git a/test/cases/compile_errors/invalid_decltest.zig b/test/cases/compile_errors/invalid_decltest.zig @@ -6,8 +6,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:14: error: cannot test a local constant // :2:11: note: local constant declared here diff --git a/test/cases/compile_errors/invalid_dependency_on_struct_size.zig b/test/cases/compile_errors/invalid_dependency_on_struct_size.zig @@ -12,7 +12,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :6:21: error: struct layout depends on it having runtime bits diff --git a/test/cases/compile_errors/invalid_deref_on_switch_target.zig b/test/cases/compile_errors/invalid_deref_on_switch_target.zig @@ -11,8 +11,6 @@ const Tile = enum { }; // error -// backend=stage2 -// target=native // // :3:17: error: cannot dereference non-pointer type 'tmp.Tile' // :8:14: note: enum declared here diff --git a/test/cases/compile_errors/invalid_destructure_astgen.zig b/test/cases/compile_errors/invalid_destructure_astgen.zig @@ -13,8 +13,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :2:25: error: expected 2 elements for destructure, found 3 // :2:22: note: result destructured here diff --git a/test/cases/compile_errors/invalid_destructure_error_union.zig b/test/cases/compile_errors/invalid_destructure_error_union.zig @@ -6,8 +6,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:28: error: type 'anyerror!u32' cannot be destructured // :3:26: note: result destructured here diff --git a/test/cases/compile_errors/invalid_destructure_sema.zig b/test/cases/compile_errors/invalid_destructure_sema.zig @@ -14,8 +14,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :2:24: error: type 'comptime_int' cannot be destructured // :2:22: note: result destructured here diff --git a/test/cases/compile_errors/invalid_duplicate_test_decl_name.zig b/test/cases/compile_errors/invalid_duplicate_test_decl_name.zig @@ -2,8 +2,6 @@ test "thingy" {} test "thingy" {} // error -// backend=stage2 -// target=native // is_test=true // // :1:6: error: duplicate test name 'thingy' diff --git a/test/cases/compile_errors/invalid_empty_unicode_escape.zig b/test/cases/compile_errors/invalid_empty_unicode_escape.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:19: error: empty unicode escape sequence diff --git a/test/cases/compile_errors/invalid_error_capture_discard.zig b/test/cases/compile_errors/invalid_error_capture_discard.zig @@ -19,8 +19,6 @@ export fn d() void { } // error -// backend=stage2 -// target=native // // :2:15: error: discard of error capture; omit it instead // :3:9: error: use of undeclared identifier '_' diff --git a/test/cases/compile_errors/invalid_error_union_payload_type.zig b/test/cases/compile_errors/invalid_error_union_payload_type.zig @@ -12,8 +12,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:18: error: error union with payload of opaque type 'anyopaque' not allowed // :5:18: error: error union with payload of error set type 'anyerror' not allowed diff --git a/test/cases/compile_errors/invalid_exponent_in_float_literal-1.zig b/test/cases/compile_errors/invalid_exponent_in_float_literal-1.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:28: error: invalid digit 'a' in exponent diff --git a/test/cases/compile_errors/invalid_exponent_in_float_literal-2.zig b/test/cases/compile_errors/invalid_exponent_in_float_literal-2.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:29: error: invalid digit 'F' in exponent diff --git a/test/cases/compile_errors/invalid_field_access_in_comptime.zig b/test/cases/compile_errors/invalid_field_access_in_comptime.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:13: error: use of undeclared identifier 'doesnt_exist' diff --git a/test/cases/compile_errors/invalid_field_in_struct_value_expression.zig b/test/cases/compile_errors/invalid_field_in_struct_value_expression.zig @@ -29,8 +29,6 @@ pub export fn entry1() void { } // error -// backend=stage2 -// target=native // // :10:10: error: no field named 'foo' in struct 'tmp.A' // :1:11: note: struct declared here diff --git a/test/cases/compile_errors/invalid_float_casts.zig b/test/cases/compile_errors/invalid_float_casts.zig @@ -20,8 +20,6 @@ export fn qux() void { } // error -// backend=stage2 -// target=native // // :4:40: error: unable to cast runtime value to 'comptime_float' // :9:18: error: expected integer type, found 'f32' diff --git a/test/cases/compile_errors/invalid_float_literal.zig b/test/cases/compile_errors/invalid_float_literal.zig @@ -7,7 +7,5 @@ pub fn main() void { } // error -// backend=stage2 -// target=native // // :5:29: error: expected expression, found '.' diff --git a/test/cases/compile_errors/invalid_function_types.zig b/test/cases/compile_errors/invalid_function_types.zig @@ -15,8 +15,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:12: error: function type cannot have a name // :5:21: error: function type cannot have an alignment diff --git a/test/cases/compile_errors/invalid_identifiers.zig b/test/cases/compile_errors/invalid_identifiers.zig @@ -18,8 +18,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:8: error: library name cannot be empty // :2:8: error: library name cannot be empty diff --git a/test/cases/compile_errors/invalid_if_expr_result_location_coercion.zig b/test/cases/compile_errors/invalid_if_expr_result_location_coercion.zig @@ -23,8 +23,6 @@ export fn invalidComptimeElse() u0 { } // error -// backend=stage2 -// target=native // // :3:34: error: type 'u8' cannot represent integer value '256' // :9:34: error: type 'u8' cannot represent integer value '256' diff --git a/test/cases/compile_errors/invalid_inline_else_type.zig b/test/cases/compile_errors/invalid_inline_else_type.zig @@ -22,8 +22,6 @@ pub export fn entry3() void { } // error -// backend=stage2 -// target=native // // :5:21: error: cannot enumerate values of type 'anyerror' for 'inline else' // :13:21: error: cannot enumerate values of type 'tmp.E' for 'inline else' diff --git a/test/cases/compile_errors/invalid_int_casts.zig b/test/cases/compile_errors/invalid_int_casts.zig @@ -20,8 +20,6 @@ export fn qux() void { } // error -// backend=stage2 -// target=native // // :4:36: error: unable to cast runtime value to 'comptime_int' // :9:18: error: expected float type, found 'u32' diff --git a/test/cases/compile_errors/invalid_legacy_unicode_escape.zig b/test/cases/compile_errors/invalid_legacy_unicode_escape.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:17: error: invalid escape character: 'U' diff --git a/test/cases/compile_errors/invalid_member_of_builtin_enum.zig b/test/cases/compile_errors/invalid_member_of_builtin_enum.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:38: error: enum 'builtin.OptimizeMode' has no member named 'x86' // : note: enum declared here diff --git a/test/cases/compile_errors/invalid_multiple_dereferences.zig b/test/cases/compile_errors/invalid_multiple_dereferences.zig @@ -13,8 +13,6 @@ pub const Box = struct { }; // error -// backend=stage2 -// target=native // // :4:8: error: cannot dereference non-pointer type 'tmp.Box' // :11:17: note: struct declared here diff --git a/test/cases/compile_errors/invalid_non-exhaustive_enum_to_union.zig b/test/cases/compile_errors/invalid_non-exhaustive_enum_to_union.zig @@ -19,8 +19,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :12:16: error: runtime coercion to union 'tmp.U' from non-exhaustive enum // :1:11: note: enum declared here diff --git a/test/cases/compile_errors/invalid_number_literals.zig b/test/cases/compile_errors/invalid_number_literals.zig @@ -18,8 +18,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:11: error: unexpected period after exponent // :5:11: error: unexpected period after exponent diff --git a/test/cases/compile_errors/invalid_optional_payload_type.zig b/test/cases/compile_errors/invalid_optional_payload_type.zig @@ -6,8 +6,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:10: error: opaque type 'anyopaque' cannot be optional // :5:10: error: type '@TypeOf(null)' cannot be optional diff --git a/test/cases/compile_errors/invalid_optional_type_in_extern_struct.zig b/test/cases/compile_errors/invalid_optional_type_in_extern_struct.zig @@ -6,8 +6,6 @@ export fn testf(fluff: *stroo) void { } // error -// backend=stage2 -// target=native // // :2:10: error: extern structs cannot contain fields of type '?[*c]u8' // :2:10: note: only pointer like optionals are extern compatible diff --git a/test/cases/compile_errors/invalid_peer_type_resolution.zig b/test/cases/compile_errors/invalid_peer_type_resolution.zig @@ -24,8 +24,6 @@ export fn incompatiblePointers4() void { } // error -// backend=stage2 -// target=native // // :5:9: error: incompatible types: '?@Vector(10, i32)' and '@Vector(11, i32)' // :5:17: note: type '?@Vector(10, i32)' here diff --git a/test/cases/compile_errors/invalid_pointer_arithmetic.zig b/test/cases/compile_errors/invalid_pointer_arithmetic.zig @@ -38,8 +38,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:11: error: invalid pointer-integer arithmetic operator // :2:11: note: pointer-integer arithmetic only supports addition and subtraction diff --git a/test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig b/test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig @@ -7,7 +7,6 @@ pub fn main() void { // error // output_mode=Exe -// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // // :2:12: error: expected type '*i32', found '*addrspace(.gs) i32' diff --git a/test/cases/compile_errors/invalid_pointer_syntax.zig b/test/cases/compile_errors/invalid_pointer_syntax.zig @@ -3,7 +3,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:16: error: expected type expression, found ':' diff --git a/test/cases/compile_errors/invalid_shift_amount_error.zig b/test/cases/compile_errors/invalid_shift_amount_error.zig @@ -7,7 +7,5 @@ export fn entry() u16 { } // error -// backend=stage2 -// target=native // // :3:17: error: type 'u3' cannot represent integer value '8' diff --git a/test/cases/compile_errors/invalid_store_to_comptime_field.zig b/test/cases/compile_errors/invalid_store_to_comptime_field.zig @@ -70,8 +70,6 @@ pub export fn entry8() void { } // error -// target=native -// backend=stage2 // // :6:9: error: value stored in comptime field does not match the default value of the field // :14:9: error: value stored in comptime field does not match the default value of the field diff --git a/test/cases/compile_errors/invalid_struct_field.zig b/test/cases/compile_errors/invalid_struct_field.zig @@ -20,8 +20,6 @@ export fn e() void { } // error -// backend=stage2 -// target=native // // :4:7: error: no field named 'foo' in struct 'tmp.A' // :1:11: note: struct declared here diff --git a/test/cases/compile_errors/invalid_switch_expr_result_location_coercion.zig b/test/cases/compile_errors/invalid_switch_expr_result_location_coercion.zig @@ -37,8 +37,6 @@ export fn invalidNonExhaustiveProng(enum_value: Enum) u8 { } // error -// backend=stage2 -// target=native // // :5:19: error: type 'u8' cannot represent integer value '256' // :15:20: error: type 'u8' cannot represent integer value '256' diff --git a/test/cases/compile_errors/invalid_tag_capture.zig b/test/cases/compile_errors/invalid_tag_capture.zig @@ -8,8 +8,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:33: error: cannot capture tag of non-union type 'tmp.E' // :1:11: note: enum declared here diff --git a/test/cases/compile_errors/invalid_tail_call.zig b/test/cases/compile_errors/invalid_tail_call.zig @@ -7,6 +7,5 @@ pub export fn entry() void { // error // backend=llvm -// target=native // // :5:5: error: unable to perform tail call: type of function being called 'fn (usize) void' does not match type of calling function 'fn () callconv(.c) void' diff --git a/test/cases/compile_errors/invalid_type.zig b/test/cases/compile_errors/invalid_type.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:8: error: use of undeclared identifier 'bogus' diff --git a/test/cases/compile_errors/invalid_type_in_builtin_extern.zig b/test/cases/compile_errors/invalid_type_in_builtin_extern.zig @@ -8,8 +8,6 @@ pub export fn entry2() void { } // error -// backend=stage2 -// target=native // // :1:19: error: extern symbol cannot have type '*comptime_int' // :1:19: note: pointer to comptime-only type 'comptime_int' diff --git a/test/cases/compile_errors/invalid_type_used_in_array_type.zig b/test/cases/compile_errors/invalid_type_used_in_array_type.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:12: error: use of undeclared identifier 'SomeNonexistentType' diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-1.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-1.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:23: error: expected digit before digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-10.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-10.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:25: error: repeated digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-11.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-11.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:28: error: repeated digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-12.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-12.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:23: error: invalid digit 'x' for decimal base diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-13.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-13.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:23: error: expected digit before digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-14.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-14.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:27: error: expected digit before exponent diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-2.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-2.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:23: error: expected digit before '.' diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-3.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-3.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:24: error: trailing digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-4.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-4.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:25: error: expected digit before digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-5.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-5.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:26: error: expected digit before digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-6.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-6.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:26: error: expected digit before digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-7.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-7.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:27: error: trailing digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-9.zig b/test/cases/compile_errors/invalid_underscore_placement_in_float_literal-9.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:23: error: repeated digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig b/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-1.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:23: error: trailing digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-2.zig b/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-2.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:27: error: trailing digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-3.zig b/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-3.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:27: error: trailing digit separator diff --git a/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-4.zig b/test/cases/compile_errors/invalid_underscore_placement_in_int_literal-4.zig @@ -4,7 +4,5 @@ fn main() void { } // error -// backend=stage2 -// target=native // // :2:27: error: trailing digit separator diff --git a/test/cases/compile_errors/invalid_unicode_escape.zig b/test/cases/compile_errors/invalid_unicode_escape.zig @@ -3,8 +3,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:21: error: expected hex digit or '}', found 'z' diff --git a/test/cases/compile_errors/issue_15572_break_on_inline_while.zig b/test/cases/compile_errors/issue_15572_break_on_inline_while.zig @@ -14,7 +14,6 @@ pub fn main() void { } // error -// backend=stage2 // target=x86_64-linux // // :9:28: error: incompatible types: 'builtin.Type.EnumField' and 'void' diff --git a/test/cases/compile_errors/issue_2032_compile_diagnostic_string_for_top_level_decl_type.zig b/test/cases/compile_errors/issue_2032_compile_diagnostic_string_for_top_level_decl_type.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:29: error: expected type 'u32', found 'tmp' // :1:1: note: struct declared here diff --git a/test/cases/compile_errors/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,6 @@ export fn foo2() void { } // error -// backend=stage2 -// target=native // // :3:37: error: cannot @bitCast from '*[2]u8' // :3:37: note: use @intFromPtr to cast to 'u16' diff --git a/test/cases/compile_errors/issue_4207_coerce_from_non-terminated-slice_to_terminated-pointer.zig b/test/cases/compile_errors/issue_4207_coerce_from_non-terminated-slice_to_terminated-pointer.zig @@ -4,8 +4,6 @@ export fn foo() [*:0]const u8 { } // error -// backend=stage2 -// target=native // // :3:18: error: expected type '[*:0]const u8', found '*[64]u8' // :3:18: note: destination pointer requires '0' sentinel diff --git a/test/cases/compile_errors/issue_5221_invalid_struct_init_type_referenced_by_typeInfo_and_passed_into_function.zig b/test/cases/compile_errors/issue_5221_invalid_struct_init_type_referenced_by_typeInfo_and_passed_into_function.zig @@ -11,8 +11,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :7:28: error: expected type '[]u8', found '*const [3:0]u8' // :7:28: note: cast discards const qualifier diff --git a/test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig b/test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig @@ -5,8 +5,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:13: error: expected type '*anyopaque', found '?*anyopaque' // :4:13: note: cannot convert optional to payload type diff --git a/test/cases/compile_errors/issue_9346_return_outside_of_function_scope.zig b/test/cases/compile_errors/issue_9346_return_outside_of_function_scope.zig @@ -1,7 +1,5 @@ pub const empty = return 1; // error -// backend=stage2 -// target=native // // :1:19: error: 'return' outside function scope diff --git a/test/cases/compile_errors/labeled_break_not_found.zig b/test/cases/compile_errors/labeled_break_not_found.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:20: error: label not found: 'outer' diff --git a/test/cases/compile_errors/labeled_continue_not_found.zig b/test/cases/compile_errors/labeled_continue_not_found.zig @@ -8,7 +8,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:23: error: label not found: 'outer' diff --git a/test/cases/compile_errors/leading_zero_in_integer.zig b/test/cases/compile_errors/leading_zero_in_integer.zig @@ -16,8 +16,6 @@ export fn entry4() void { } // error -// backend=stage2 -// target=native // // :2:15: error: primitive integer type 'u000123' has leading zero // :8:12: error: primitive integer type 'i01' has leading zero diff --git a/test/cases/compile_errors/len_access_on_array_many_ptr.zig b/test/cases/compile_errors/len_access_on_array_many_ptr.zig @@ -4,7 +4,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:10: error: type '[*][5]u8' does not support field access diff --git a/test/cases/compile_errors/load_too_many_bytes_from_comptime_reinterpreted_pointer.zig b/test/cases/compile_errors/load_too_many_bytes_from_comptime_reinterpreted_pointer.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:28: error: dereference of '*const i64' exceeds bounds of containing decl of type 'f32' diff --git a/test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig b/test/cases/compile_errors/load_vector_pointer_with_unknown_runtime_index.zig @@ -11,7 +11,5 @@ fn loadv(ptr: anytype) i31 { } // error -// backend=stage2 -// target=native // // :10:15: error: unable to determine vector element index of type '*align(16:0:4:?) i31' diff --git a/test/cases/compile_errors/local_shadows_global_that_occurs_later.zig b/test/cases/compile_errors/local_shadows_global_that_occurs_later.zig @@ -5,8 +5,6 @@ pub fn main() void { fn foo() void {} // error -// backend=stage2 -// target=native // // :2:9: error: local variable shadows declaration of 'foo' // :5:1: note: declared here diff --git a/test/cases/compile_errors/local_variable_redeclaration.zig b/test/cases/compile_errors/local_variable_redeclaration.zig @@ -4,8 +4,6 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :3:9: error: redeclaration of local constant 'a' // :2:11: note: previous declaration here diff --git a/test/cases/compile_errors/local_variable_redeclares_parameter.zig b/test/cases/compile_errors/local_variable_redeclares_parameter.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:11: error: local constant 'a' shadows function parameter from outer scope // :1:6: note: previous declaration here diff --git a/test/cases/compile_errors/local_variable_shadowing_global.zig b/test/cases/compile_errors/local_variable_shadowing_global.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:9: error: local variable shadows declaration of 'Bar' // :2:1: note: declared here diff --git a/test/cases/compile_errors/locally_shadowing_a_primitive_type.zig b/test/cases/compile_errors/locally_shadowing_a_primitive_type.zig @@ -5,8 +5,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:11: error: name shadows primitive 'u8' // :2:11: note: consider using @"u8" to disambiguate diff --git a/test/cases/compile_errors/main_function_with_bogus_args_type.zig b/test/cases/compile_errors/main_function_with_bogus_args_type.zig @@ -3,7 +3,5 @@ pub fn main(args: [][]bogus) !void { } // error -// backend=stage2 -// target=native // // :1:23: error: use of undeclared identifier 'bogus' diff --git a/test/cases/compile_errors/main_missing_name.zig b/test/cases/compile_errors/main_missing_name.zig @@ -1,8 +1,6 @@ pub fn (main) void {} // error -// backend=stage2 -// target=native // output_mode=Exe // // :1:5: error: missing function name diff --git a/test/cases/compile_errors/member_function_arg_mismatch.zig b/test/cases/compile_errors/member_function_arg_mismatch.zig @@ -8,8 +8,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:6: error: member function expected 2 argument(s), found 1 // :3:5: note: function declared here diff --git a/test/cases/compile_errors/memset_no_length.zig b/test/cases/compile_errors/memset_no_length.zig @@ -10,8 +10,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :4:5: error: unknown @memset length // :4:13: note: destination type '[*]u8' provides no length diff --git a/test/cases/compile_errors/method_call_on_error_union.zig b/test/cases/compile_errors/method_call_on_error_union.zig @@ -14,8 +14,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :13:6: error: no field or member function named 'a' in '@typeInfo(@typeInfo(@TypeOf(tmp.X.init)).@"fn".return_type.?).error_union.error_set!tmp.X' // :13:6: note: consider using 'try', 'catch', or 'if' diff --git a/test/cases/compile_errors/method_call_with_first_arg_type_primitive.zig b/test/cases/compile_errors/method_call_with_first_arg_type_primitive.zig @@ -15,8 +15,6 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :14:9: error: no field or member function named 'init' in 'tmp.Foo' // :1:13: note: struct declared here diff --git a/test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig b/test/cases/compile_errors/method_call_with_first_arg_type_wrong_container.zig @@ -24,8 +24,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :23:6: error: no field or member function named 'init' in 'tmp.List' // :1:18: note: struct declared here diff --git a/test/cases/compile_errors/minmax_missing_args.zig b/test/cases/compile_errors/minmax_missing_args.zig @@ -2,8 +2,6 @@ comptime { _ = @min(1); } comptime { _ = @max(1); } // error -// backend=stage2 -// target=native // // :1:16: error: expected at least 2 arguments, found 1 // :2:16: error: expected at least 2 arguments, found 1 diff --git a/test/cases/compile_errors/minmax_nonnumeric_operand.zig b/test/cases/compile_errors/minmax_nonnumeric_operand.zig @@ -19,8 +19,6 @@ const Enum = enum { foo }; const Union = union { foo: void }; // error -// backend=stage2 -// target=native // // :2:24: error: expected number, found 'type' // :3:24: error: expected number, found 'void' diff --git a/test/cases/compile_errors/missing_boolean_switch_value.zig b/test/cases/compile_errors/missing_boolean_switch_value.zig @@ -12,8 +12,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: switch must handle all possibilities // :8:15: error: switch must handle all possibilities diff --git a/test/cases/compile_errors/missing_builtin_arg_in_initializer.zig b/test/cases/compile_errors/missing_builtin_arg_in_initializer.zig @@ -9,8 +9,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: expected 2 arguments, found 0 // :5:15: error: expected 1 argument, found 0 diff --git a/test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig b/test/cases/compile_errors/missing_const_in_slice_with_nested_array_type.zig @@ -12,7 +12,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:26: error: array literal requires address-of operator (&) to coerce to slice type '[][2]f32' diff --git a/test/cases/compile_errors/missing_digit_after_base.zig b/test/cases/compile_errors/missing_digit_after_base.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:27: error: expected a digit after base prefix diff --git a/test/cases/compile_errors/missing_else_clause.zig b/test/cases/compile_errors/missing_else_clause.zig @@ -31,8 +31,6 @@ export fn entry() void { k(true); } // error -// backend=stage2 -// target=native // // :2:20: error: expected type 'i32', found 'void' // :8:15: error: incompatible types: 'i32' and 'void' diff --git a/test/cases/compile_errors/missing_field_in_struct_value_expression.zig b/test/cases/compile_errors/missing_field_in_struct_value_expression.zig @@ -23,8 +23,6 @@ export fn h() void { _ = c; } // error -// backend=stage2 -// target=native // // :9:16: error: missing struct field: x // :1:11: note: struct declared here diff --git a/test/cases/compile_errors/missing_function_name.zig b/test/cases/compile_errors/missing_function_name.zig @@ -1,7 +1,5 @@ fn () void {} // error -// backend=stage2 -// target=native // // :1:1: error: missing function name diff --git a/test/cases/compile_errors/missing_function_proto_name.zig b/test/cases/compile_errors/missing_function_proto_name.zig @@ -1,7 +1,5 @@ fn () void; // error -// backend=stage2 -// target=native // // :1:1: error: missing function name diff --git a/test/cases/compile_errors/missing_param_name.zig b/test/cases/compile_errors/missing_param_name.zig @@ -4,7 +4,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:6: error: missing parameter name diff --git a/test/cases/compile_errors/missing_parameter_name.zig b/test/cases/compile_errors/missing_parameter_name.zig @@ -9,8 +9,6 @@ fn f1(x) u64 { } // error -// backend=stage2 -// target=native // // :1:7: error: missing parameter name // :4:7: error: missing parameter name diff --git a/test/cases/compile_errors/missing_parameter_name_of_generic_function.zig b/test/cases/compile_errors/missing_parameter_name_of_generic_function.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:9: error: missing parameter name diff --git a/test/cases/compile_errors/missing_result_type_for_phi_node.zig b/test/cases/compile_errors/missing_result_type_for_phi_node.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:11: error: incompatible types: 'void' and 'comptime_int' // :5:11: note: type 'void' here diff --git a/test/cases/compile_errors/misspelled_type_with_pointer_only_reference.zig b/test/cases/compile_errors/misspelled_type_with_pointer_only_reference.zig @@ -29,7 +29,5 @@ fn foo() void { } // error -// backend=stage2 -// target=native // // :5:16: error: use of undeclared identifier 'JsonList' diff --git a/test/cases/compile_errors/muladd_int_vector.zig b/test/cases/compile_errors/muladd_int_vector.zig @@ -3,7 +3,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:9: error: expected vector of floats or float type, found '@Vector(1, u32)' diff --git a/test/cases/compile_errors/negative_zero_literal.zig b/test/cases/compile_errors/negative_zero_literal.zig @@ -3,8 +3,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :2:10: error: integer literal '-0' is ambiguous // :2:10: note: use '0' for an integer zero diff --git a/test/cases/compile_errors/nested_error_set_mismatch.zig b/test/cases/compile_errors/nested_error_set_mismatch.zig @@ -11,8 +11,6 @@ fn foo() ?OtherError!i32 { } // error -// backend=stage2 -// target=native // // :5:34: error: expected type '?error{NextError}!i32', found '?error{OutOfMemory}!i32' // :5:34: note: optional type child 'error{OutOfMemory}!i32' cannot cast into optional type child 'error{NextError}!i32' diff --git a/test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig b/test/cases/compile_errors/nested_generic_function_param_type_mismatch.zig @@ -16,8 +16,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :15:28: error: expected type '*const fn (type, u8, u8) u32', found '*const fn (void, u8, u8) u32' // :15:28: note: pointer type child 'fn (void, u8, u8) u32' cannot cast into pointer type child 'fn (type, u8, u8) u32' diff --git a/test/cases/compile_errors/nested_ptr_cast_bad_operand.zig b/test/cases/compile_errors/nested_ptr_cast_bad_operand.zig @@ -11,8 +11,6 @@ export fn c() void { } // error -// backend=stage2 -// target=native // // :3:45: error: null pointer casted to type '*const u32' // :6:34: error: expected pointer type, found 'comptime_int' diff --git a/test/cases/compile_errors/nested_vectors.zig b/test/cases/compile_errors/nested_vectors.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:16: error: expected integer, float, bool, or pointer for the vector element type; found '@Vector(4, u8)' diff --git a/test/cases/compile_errors/no_else_prong_on_switch_on_global_error_set.zig b/test/cases/compile_errors/no_else_prong_on_switch_on_global_error_set.zig @@ -8,7 +8,5 @@ fn foo(a: anyerror) void { } // error -// backend=stage2 -// target=native // // :5:5: error: else prong required when switching on type 'anyerror' diff --git a/test/cases/compile_errors/noalias_on_non_pointer_param.zig b/test/cases/compile_errors/noalias_on_non_pointer_param.zig @@ -16,7 +16,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:6: error: non-pointer parameter declared noalias diff --git a/test/cases/compile_errors/noalias_param_coersion.zig b/test/cases/compile_errors/noalias_param_coersion.zig @@ -11,8 +11,6 @@ fn foo(noalias _: *i32, noalias _: *i32) void {} fn bar(noalias _: *i32, _: *i32) void {} // error -// backend=stage2 -// target=native // // :3:9: error: expected type 'fn (noalias *i32, noalias *i32) void', found 'fn (noalias *i32, *i32) void' // :3:9: note: regular parameter 1 cannot cast into a noalias parameter diff --git a/test/cases/compile_errors/noinline_fn_cc_inline.zig b/test/cases/compile_errors/noinline_fn_cc_inline.zig @@ -5,7 +5,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:29: error: 'noinline' function cannot have calling convention 'inline' diff --git a/test/cases/compile_errors/non-const_switch_number_literal.zig b/test/cases/compile_errors/non-const_switch_number_literal.zig @@ -11,8 +11,6 @@ fn bar() i32 { } // error -// backend=stage2 -// target=native // // :2:15: error: value with comptime-only type 'comptime_int' depends on runtime control flow // :2:26: note: runtime control flow here diff --git a/test/cases/compile_errors/non-const_variables_of_things_that_require_const_variables.zig b/test/cases/compile_errors/non-const_variables_of_things_that_require_const_variables.zig @@ -33,8 +33,6 @@ export fn entry8() void { } // error -// backend=stage2 -// target=native // // :2:9: error: variable of type '*const comptime_int' must be const or comptime // :6:9: error: variable of type '@TypeOf(undefined)' must be const or comptime diff --git a/test/cases/compile_errors/non-enum_tag_type_passed_to_union.zig b/test/cases/compile_errors/non-enum_tag_type_passed_to_union.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:19: error: expected enum tag type, found 'u32' diff --git a/test/cases/compile_errors/non-exhaustive_enum_field_non_final.zig b/test/cases/compile_errors/non-exhaustive_enum_field_non_final.zig @@ -5,7 +5,5 @@ const B = enum(u1) { }; // error -// backend=stage2 -// target=native // // :3:5: error: '_' field of non-exhaustive enum must be last diff --git a/test/cases/compile_errors/non-exhaustive_enum_marker_assigned_a_value.zig b/test/cases/compile_errors/non-exhaustive_enum_marker_assigned_a_value.zig @@ -14,8 +14,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :4:9: error: '_' is used to mark an enum as non-exhaustive and cannot be assigned a value // :6:11: error: non-exhaustive enum missing integer tag type diff --git a/test/cases/compile_errors/non-exhaustive_enum_specifies_every_value.zig b/test/cases/compile_errors/non-exhaustive_enum_specifies_every_value.zig @@ -8,7 +8,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:11: error: non-exhaustive enum specifies every value diff --git a/test/cases/compile_errors/non-extern_function_with_var_args.zig b/test/cases/compile_errors/non-extern_function_with_var_args.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:14: error: expected type expression, found '...' diff --git a/test/cases/compile_errors/non-inline_for_loop_on_a_type_that_requires_comptime.zig b/test/cases/compile_errors/non-inline_for_loop_on_a_type_that_requires_comptime.zig @@ -10,8 +10,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:10: error: values of type '[2]tmp.Foo' must be comptime-known, but index value is runtime-known // :3:8: note: struct requires comptime because of this field diff --git a/test/cases/compile_errors/non-integer_tag_type_to_automatic_union_enum.zig b/test/cases/compile_errors/non-integer_tag_type_to_automatic_union_enum.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:24: error: expected integer tag type, found 'f32' diff --git a/test/cases/compile_errors/non-integer_tag_type_to_enum.zig b/test/cases/compile_errors/non-integer_tag_type_to_enum.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:18: error: expected integer tag type, found 'f32' diff --git a/test/cases/compile_errors/non_constant_expression_in_array_size.zig b/test/cases/compile_errors/non_constant_expression_in_array_size.zig @@ -11,8 +11,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :6:12: error: unable to resolve comptime value // :2:12: note: called at comptime from here diff --git a/test/cases/compile_errors/non_error_sets_used_in_merge_error_sets_operator.zig b/test/cases/compile_errors/non_error_sets_used_in_merge_error_sets_operator.zig @@ -8,8 +8,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :2:20: error: expected error set type, found 'u8' // :6:31: error: expected error set type, found 'u16' diff --git a/test/cases/compile_errors/non_float_passed_to_intFromFloat.zig b/test/cases/compile_errors/non_float_passed_to_intFromFloat.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:34: error: expected float type, found 'i32' diff --git a/test/cases/compile_errors/non_int_passed_to_floatFromInt.zig b/test/cases/compile_errors/non_int_passed_to_floatFromInt.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:34: error: expected integer type, found 'comptime_float' diff --git a/test/cases/compile_errors/non_pointer_given_to_intFromPtr.zig b/test/cases/compile_errors/non_pointer_given_to_intFromPtr.zig @@ -3,7 +3,5 @@ export fn entry(x: i32) usize { } // error -// backend=stage2 -// target=native // // :2:24: error: expected pointer, found 'i32' diff --git a/test/cases/compile_errors/non_void_error_union_payload_ignored.zig b/test/cases/compile_errors/non_void_error_union_payload_ignored.zig @@ -18,8 +18,6 @@ pub export fn entry2() void { } // error -// backend=stage2 -// target=native // // :3:5: error: error union payload is ignored // :3:5: note: payload value can be explicitly ignored with '|_|' diff --git a/test/cases/compile_errors/noreturn_builtins_divert_control_flow.zig b/test/cases/compile_errors/noreturn_builtins_divert_control_flow.zig @@ -12,8 +12,6 @@ export fn entry3() void { } // error -// backend=stage2 -// target=native // // :3:5: error: unreachable code // :2:5: note: control flow is diverted here diff --git a/test/cases/compile_errors/noreturn_struct_field.zig b/test/cases/compile_errors/noreturn_struct_field.zig @@ -6,7 +6,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:8: error: struct fields cannot be 'noreturn' diff --git a/test/cases/compile_errors/normal_string_with_newline.zig b/test/cases/compile_errors/normal_string_with_newline.zig @@ -2,7 +2,5 @@ const foo = "a b"; // error -// backend=stage2 -// target=native // // :1:15: error: string literal contains invalid byte: '\n' diff --git a/test/cases/compile_errors/not_an_enum_type.zig b/test/cases/compile_errors/not_an_enum_type.zig @@ -13,8 +13,6 @@ const InvalidToken = struct {}; const ExpectedVarDeclOrFn = struct {}; // error -// backend=stage2 -// target=native // // :4:9: error: expected type '@typeInfo(tmp.Error).@"union".tag_type.?', found 'type' // :8:15: note: enum declared here diff --git a/test/cases/compile_errors/number_literal_bad_exponent.zig b/test/cases/compile_errors/number_literal_bad_exponent.zig @@ -4,8 +4,6 @@ const c = 0x1E-4; const d = 0x1E+4; // error -// backend=stage2 -// target=native // // :1:15: error: sign '-' cannot follow digit 'e' in hex base // :2:15: error: sign '+' cannot follow digit 'e' in hex base diff --git a/test/cases/compile_errors/offsetOf-bad_field_name.zig b/test/cases/compile_errors/offsetOf-bad_field_name.zig @@ -9,8 +9,6 @@ export fn foo() usize { } // error -// backend=stage2 -// target=native // // :7:9: error: no field named 'a' in struct 'tmp.Foo' // :1:13: note: struct declared here diff --git a/test/cases/compile_errors/offsetOf-non_struct.zig b/test/cases/compile_errors/offsetOf-non_struct.zig @@ -4,7 +4,5 @@ export fn foo() usize { } // error -// backend=stage2 -// target=native // // :3:22: error: expected struct type, found 'i32' diff --git a/test/cases/compile_errors/old_fn_ptr_in_extern_context.zig b/test/cases/compile_errors/old_fn_ptr_in_extern_context.zig @@ -9,8 +9,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:8: error: extern structs cannot contain fields of type 'fn () callconv(.c) void' // :2:8: note: type has no guaranteed in-memory representation diff --git a/test/cases/compile_errors/only_equality_binary_operator_allowed_for_error_sets.zig b/test/cases/compile_errors/only_equality_binary_operator_allowed_for_error_sets.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:23: error: operator > not allowed for type 'error{A,B}' diff --git a/test/cases/compile_errors/only_untyped_undef_coerces_to_all_types.zig b/test/cases/compile_errors/only_untyped_undef_coerces_to_all_types.zig @@ -5,7 +5,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:20: error: expected type 'f32', found '[]u8' diff --git a/test/cases/compile_errors/opaque_type_with_field.zig b/test/cases/compile_errors/opaque_type_with_field.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:25: error: opaque types cannot have fields diff --git a/test/cases/compile_errors/optional_empty_error_set.zig b/test/cases/compile_errors/optional_empty_error_set.zig @@ -6,8 +6,6 @@ fn foo() !void { return x.?; } // error -// backend=stage2 -// target=native // // :6:13: error: unable to unwrap null // :2:17: note: called at comptime here diff --git a/test/cases/compile_errors/out_of_bounds_index.zig b/test/cases/compile_errors/out_of_bounds_index.zig @@ -21,7 +21,6 @@ comptime { } // error -// target=native // // :4:32: error: end index 6 out of bounds for slice of length 4 +1 (sentinel) // :9:28: error: end index 6 out of bounds for array of length 4 +1 (sentinel) diff --git a/test/cases/compile_errors/out_of_int_range_comptime_float_passed_to_intFromFloat.zig b/test/cases/compile_errors/out_of_int_range_comptime_float_passed_to_intFromFloat.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:33: error: float value '200' cannot be stored in integer type 'i8' diff --git a/test/cases/compile_errors/overflow_in_enum_value_allocation.zig b/test/cases/compile_errors/overflow_in_enum_value_allocation.zig @@ -8,7 +8,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:5: error: enumeration value '256' too large for type 'u8' diff --git a/test/cases/compile_errors/packed_struct_backing_int_wrong.zig b/test/cases/compile_errors/packed_struct_backing_int_wrong.zig @@ -43,8 +43,6 @@ export fn entry7() void { } // error -// backend=stage2 -// target=native // // :2:31: error: backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 29 // :9:31: error: backing integer type 'i31' has bit size 31 but the struct fields have a total bit size of 32 diff --git a/test/cases/compile_errors/packed_struct_comparison.zig b/test/cases/compile_errors/packed_struct_comparison.zig @@ -22,8 +22,6 @@ const Foo = packed struct { }; // error -// backend=stage2 -// target=native // // :5:11: error: operator > not allowed for type 'tmp.Foo' // :19:20: note: struct declared here 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 @@ -78,8 +78,6 @@ export fn entry14() void { } // error -// backend=stage2 -// target=native // // :3:12: error: packed structs cannot contain fields of type 'anyerror' // :3:12: note: type has no guaranteed in-memory representation diff --git a/test/cases/compile_errors/packed_union_fields_mismatch.zig b/test/cases/compile_errors/packed_union_fields_mismatch.zig @@ -6,8 +6,6 @@ export fn entry1() void { } // error -// backend=stage2 -// target=native // // :2:16: error: packed union has fields with mismatching bit sizes // :3:12: note: 1 bits here diff --git a/test/cases/compile_errors/packed_union_given_enum_tag_type.zig b/test/cases/compile_errors/packed_union_given_enum_tag_type.zig @@ -14,7 +14,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:30: error: packed union does not support enum tag type diff --git a/test/cases/compile_errors/packed_union_with_automatic_layout_field.zig b/test/cases/compile_errors/packed_union_with_automatic_layout_field.zig @@ -12,8 +12,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:8: error: packed unions cannot contain fields of type 'tmp.Foo' // :6:8: note: only packed structs layout are allowed in packed types diff --git a/test/cases/compile_errors/panic_called_at_compile_time.zig b/test/cases/compile_errors/panic_called_at_compile_time.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:9: error: encountered @panic at comptime diff --git a/test/cases/compile_errors/panic_has_source_location.zig b/test/cases/compile_errors/panic_has_source_location.zig @@ -11,7 +11,5 @@ pub fn panic(_: []const u8, _: ?*std.builtin.StackTrace, _: ?usize) noreturn { } // error -// backend=stage2 -// target=native // // :10:5: error: panic diff --git a/test/cases/compile_errors/parameter_redeclaration.zig b/test/cases/compile_errors/parameter_redeclaration.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:14: error: redeclaration of function parameter 'a' // :1:6: note: previous declaration here diff --git a/test/cases/compile_errors/parameter_shadowing_global.zig b/test/cases/compile_errors/parameter_shadowing_global.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:6: error: function parameter shadows declaration of 'Foo' // :1:1: note: declared here diff --git a/test/cases/compile_errors/pass_const_ptr_to_mutable_ptr_fn.zig b/test/cases/compile_errors/pass_const_ptr_to_mutable_ptr_fn.zig @@ -14,8 +14,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :4:19: error: expected type '*[]const u8', found '*const []const u8' // :4:19: note: cast discards const qualifier diff --git a/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig b/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig @@ -6,8 +6,6 @@ export fn entry() bool { } // error -// backend=stage2 -// target=native // // :4:31: error: expected type '*i32', found '*align(1) i32' // :4:31: note: pointer alignment '1' cannot cast into pointer alignment '4' diff --git a/test/cases/compile_errors/passing_an_under-aligned_function_pointer.zig b/test/cases/compile_errors/passing_an_under-aligned_function_pointer.zig @@ -9,7 +9,6 @@ fn alignedSmall() align(4) i32 { } // error -// backend=stage2 // target=x86_64-linux // // :2:35: error: expected type '*align(8) const fn () i32', found '*align(4) const fn () i32' diff --git a/test/cases/compile_errors/peer_cast_then_implicit_cast_const_pointer_to_mutable_C_pointer.zig b/test/cases/compile_errors/peer_cast_then_implicit_cast_const_pointer_to_mutable_C_pointer.zig @@ -4,8 +4,6 @@ export fn func() void { } // error -// backend=stage2 -// target=native // // :3:32: error: expected type '[*c]u8', found '*const [0:0]u8' // :3:32: note: cast discards const qualifier diff --git a/test/cases/compile_errors/pointer_arithmetic_on_pointer-to-array.zig b/test/cases/compile_errors/pointer_arithmetic_on_pointer-to-array.zig @@ -6,8 +6,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :4:17: error: incompatible types: '*[10]u8' and 'comptime_int' // :4:15: note: type '*[10]u8' here diff --git a/test/cases/compile_errors/pointer_attributes_checked_when_coercing_pointer_to_anon_literal.zig b/test/cases/compile_errors/pointer_attributes_checked_when_coercing_pointer_to_anon_literal.zig @@ -13,8 +13,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:29: error: expected type '[][]const u8', found '*const [2][]const u8' // :2:29: note: cast discards const qualifier diff --git a/test/cases/compile_errors/pointer_to_anyopaque_slice.zig b/test/cases/compile_errors/pointer_to_anyopaque_slice.zig @@ -6,7 +6,5 @@ export fn x() void { } // error -// backend=stage2 -// target=native // // :4:9: error: expected type '[]anyopaque', found '*u32' diff --git a/test/cases/compile_errors/pointer_to_noreturn.zig b/test/cases/compile_errors/pointer_to_noreturn.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:9: error: pointer to noreturn not allowed diff --git a/test/cases/compile_errors/pointer_with_different_address_spaces.zig b/test/cases/compile_errors/pointer_with_different_address_spaces.zig @@ -7,7 +7,6 @@ export fn entry2() void { // error // output_mode=Obj -// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // // :2:12: error: expected type '*addrspace(.fs) i32', found '*addrspace(.gs) i32' diff --git a/test/cases/compile_errors/pointers_with_different_address_spaces.zig b/test/cases/compile_errors/pointers_with_different_address_spaces.zig @@ -7,7 +7,6 @@ pub fn main() void { // error // output_mode=Exe -// backend=stage2,llvm // target=x86_64-linux,x86_64-macos // // :2:13: error: expected type '*i32', found '*addrspace(.gs) i32' diff --git a/test/cases/compile_errors/pointless discard.zig b/test/cases/compile_errors/pointless discard.zig @@ -13,8 +13,6 @@ export fn bar() void { } // error -// backend=stage2 -// target=native // // :4:9: error: pointless discard of local variable // :3:5: note: used here diff --git a/test/cases/compile_errors/popCount-non-integer.zig b/test/cases/compile_errors/popCount-non-integer.zig @@ -3,7 +3,5 @@ export fn entry(x: f32) u32 { } // error -// backend=stage2 -// target=native // // :2:22: error: expected integer or vector, found 'f32' diff --git a/test/cases/compile_errors/primitives_take_precedence_over_declarations.zig b/test/cases/compile_errors/primitives_take_precedence_over_declarations.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:19: error: type 'u8' cannot represent integer value '300' diff --git a/test/cases/compile_errors/ptrCast_discards_const_qualifier.zig b/test/cases/compile_errors/ptrCast_discards_const_qualifier.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:21: error: @ptrCast discards const qualifier // :3:21: note: use @constCast to discard const qualifier diff --git a/test/cases/compile_errors/ptrFromInt_non_ptr_type.zig b/test/cases/compile_errors/ptrFromInt_non_ptr_type.zig @@ -7,8 +7,6 @@ pub export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:18: error: expected pointer type, found 'i32' // :6:19: error: integer cannot be converted to slice type '[]u8' diff --git a/test/cases/compile_errors/ptrFromInt_with_misaligned_address.zig b/test/cases/compile_errors/ptrFromInt_with_misaligned_address.zig @@ -4,7 +4,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:41: error: pointer type '[*]align(4) u8' requires aligned address diff --git a/test/cases/compile_errors/ptr_coerced_to_slice.zig b/test/cases/compile_errors/ptr_coerced_to_slice.zig @@ -12,8 +12,6 @@ export fn baz() void { } // error -// backend=stage2 -// target=native // // :3:25: error: expected type '[]const u8', found '[*]const u8' // :7:25: error: expected type '[]const u8', found '[*c]const u8' diff --git a/test/cases/compile_errors/ptrcast_to_non-pointer.zig b/test/cases/compile_errors/ptrcast_to_non-pointer.zig @@ -3,7 +3,5 @@ export fn entry(a: *i32) usize { } // error -// backend=stage2 -// target=native // // :2:12: error: expected pointer type, found 'usize' diff --git a/test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig b/test/cases/compile_errors/range_operator_in_switch_used_on_error_set.zig @@ -13,8 +13,6 @@ fn foo(x: i32) !void { } // error -// backend=stage2 -// target=native // // :2:34: error: ranges not allowed when switching on type '@typeInfo(@typeInfo(@TypeOf(tmp.foo)).@"fn".return_type.?).error_union.error_set' // :3:18: note: range here diff --git a/test/cases/compile_errors/reading_past_end_of_pointer_casted_array.zig b/test/cases/compile_errors/reading_past_end_of_pointer_casted_array.zig @@ -14,8 +14,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :5:26: error: dereference of '*const u24' exceeds bounds of containing decl of type '[4]u8' // :12:26: error: dereference of '*const u32' exceeds bounds of containing decl of type '[4]u8' diff --git a/test/cases/compile_errors/reassign_to_array_parameter.zig b/test/cases/compile_errors/reassign_to_array_parameter.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/reassign_to_slice_parameter.zig b/test/cases/compile_errors/reassign_to_slice_parameter.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/reassign_to_struct_parameter.zig b/test/cases/compile_errors/reassign_to_struct_parameter.zig @@ -9,7 +9,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/redefinition_of_enums.zig b/test/cases/compile_errors/redefinition_of_enums.zig @@ -2,8 +2,6 @@ const A = enum { x }; const A = enum { x }; // error -// backend=stage2 -// target=native // // :1:7: error: duplicate struct member name 'A' // :2:7: note: duplicate name here diff --git a/test/cases/compile_errors/redefinition_of_global_variables.zig b/test/cases/compile_errors/redefinition_of_global_variables.zig @@ -2,8 +2,6 @@ var a: i32 = 1; var a: i32 = 2; // error -// backend=stage2 -// target=native // // :1:5: error: duplicate struct member name 'a' // :2:5: note: duplicate name here diff --git a/test/cases/compile_errors/redefinition_of_struct.zig b/test/cases/compile_errors/redefinition_of_struct.zig @@ -2,8 +2,6 @@ const A = struct { x: i32 }; const A = struct { y: i32 }; // error -// backend=stage2 -// target=native // // :1:7: error: duplicate struct member name 'A' // :2:7: note: duplicate name here diff --git a/test/cases/compile_errors/redundant_ptr_cast.zig b/test/cases/compile_errors/redundant_ptr_cast.zig @@ -11,8 +11,6 @@ export fn c() void { } // error -// backend=stage2 -// target=native // // :3:18: error: redundant @ptrCast // :6:44: error: redundant @alignCast diff --git a/test/cases/compile_errors/reference_to_const_data.zig b/test/cases/compile_errors/reference_to_const_data.zig @@ -27,8 +27,6 @@ export fn quux() void { } // error -// backend=stage2 -// target=native // // :3:8: error: cannot assign to constant // :7:8: error: cannot assign to constant diff --git a/test/cases/compile_errors/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig b/test/cases/compile_errors/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig @@ -15,8 +15,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :12:15: error: expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(tmp.get_uval)).@"fn".return_type.?).error_union.error_set!u32' // :12:15: note: cannot convert error union to payload type diff --git a/test/cases/compile_errors/reified_enum_field_value_overflow.zig b/test/cases/compile_errors/reified_enum_field_value_overflow.zig @@ -13,7 +13,5 @@ comptime { } // error -// target=native -// backend=stage2 // // :2:15: error: field 'f2' with enumeration value '2' is too large for backing int type 'u1' diff --git a/test/cases/compile_errors/reify_enum_with_duplicate_field.zig b/test/cases/compile_errors/reify_enum_with_duplicate_field.zig @@ -13,8 +13,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:9: error: duplicate enum field 'A' // :2:9: note: other field here diff --git a/test/cases/compile_errors/reify_enum_with_duplicate_tag_value.zig b/test/cases/compile_errors/reify_enum_with_duplicate_tag_value.zig @@ -13,8 +13,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:9: error: enum tag value 10 already taken // :2:9: note: other enum tag value here diff --git a/test/cases/compile_errors/reify_type.Fn_with_is_generic_true.zig b/test/cases/compile_errors/reify_type.Fn_with_is_generic_true.zig @@ -12,7 +12,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:13: error: Type.Fn.is_generic must be false for @Type diff --git a/test/cases/compile_errors/reify_type.Fn_with_return_type_null.zig b/test/cases/compile_errors/reify_type.Fn_with_return_type_null.zig @@ -12,7 +12,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:13: error: Type.Fn.return_type must be non-null for @Type diff --git a/test/cases/compile_errors/reify_typeOf_with_incompatible_arguments.zig b/test/cases/compile_errors/reify_typeOf_with_incompatible_arguments.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:9: error: incompatible types: 'f32' and 'u32' // :4:17: note: type 'f32' here diff --git a/test/cases/compile_errors/reify_typeOf_with_no_arguments.zig b/test/cases/compile_errors/reify_typeOf_with_no_arguments.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:9: error: expected at least 1 argument, found 0 diff --git a/test/cases/compile_errors/reify_type_for_exhaustive_enum_with_non-integer_tag_type.zig b/test/cases/compile_errors/reify_type_for_exhaustive_enum_with_non-integer_tag_type.zig @@ -11,7 +11,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:13: error: Type.Enum.tag_type must be an integer type diff --git a/test/cases/compile_errors/reify_type_for_tagged_extern_union.zig b/test/cases/compile_errors/reify_type_for_tagged_extern_union.zig @@ -28,7 +28,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :13:16: error: extern union does not support enum tag type diff --git a/test/cases/compile_errors/reify_type_for_tagged_packed_union.zig b/test/cases/compile_errors/reify_type_for_tagged_packed_union.zig @@ -28,7 +28,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :13:16: error: packed union does not support enum tag type diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig @@ -27,8 +27,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :13:16: error: enum fields missing in union // :1:13: note: field 'arst' missing, 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 @@ -27,8 +27,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :12:16: error: no field named 'arst' in enum 'tmp.Tag' // :1:13: note: enum declared here diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig @@ -23,8 +23,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :9:16: error: no field named 'signed' in enum 'tmp.Tag' // :1:13: note: enum declared here diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig @@ -23,8 +23,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :12:16: error: enum fields missing in union // :1:13: note: field 'signed' missing, declared here diff --git a/test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig b/test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig @@ -13,8 +13,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:18: error: opaque types have unknown size and therefore cannot be directly embedded in unions // :6:39: note: opaque declared here diff --git a/test/cases/compile_errors/reify_type_with_Type.Int.zig b/test/cases/compile_errors/reify_type_with_Type.Int.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:31: error: expected type 'builtin.Type', found 'builtin.Type.Int' // :?:?: note: struct declared here diff --git a/test/cases/compile_errors/reject_extern_function_definitions_with_body.zig b/test/cases/compile_errors/reject_extern_function_definitions_with_body.zig @@ -3,7 +3,5 @@ extern "c" fn definitelyNotInLibC(a: i32, b: i32) i32 { } // error -// backend=stage2 -// target=native // // :1:1: error: extern functions have no body diff --git a/test/cases/compile_errors/reject_extern_variables_with_initializers.zig b/test/cases/compile_errors/reject_extern_variables_with_initializers.zig @@ -1,7 +1,5 @@ extern var foo: int = 2; // error -// backend=stage2 -// target=native // // :1:23: error: extern variables have no initializers diff --git a/test/cases/compile_errors/repeated_invalid_field_access_to_generic_function_returning_type_crashes_compiler_2655.zig b/test/cases/compile_errors/repeated_invalid_field_access_to_generic_function_returning_type_crashes_compiler_2655.zig @@ -7,8 +7,6 @@ test "1" { } // error -// backend=stage2 -// target=native // is_test=true // // :2:12: error: use of undeclared identifier 'Q' diff --git a/test/cases/compile_errors/resolve_inferred_error_set_of_generic_fn.zig b/test/cases/compile_errors/resolve_inferred_error_set_of_generic_fn.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :10:15: error: unable to resolve inferred error set of generic function // :1:1: note: generic function declared here diff --git a/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr.zig b/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr.zig @@ -12,8 +12,6 @@ pub const Container = struct { }; // error -// backend=stage2 -// target=native // // :3:23: error: expected type 'i32', found '?i32' // :3:23: note: cannot convert optional to payload type diff --git a/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig b/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig @@ -12,8 +12,6 @@ pub const Container = struct { }; // error -// backend=stage2 -// target=native // // :3:23: error: expected type 'i32', found '?i32' // :3:23: note: cannot convert optional to payload type diff --git a/test/cases/compile_errors/return_from_defer_expression.zig b/test/cases/compile_errors/return_from_defer_expression.zig @@ -17,8 +17,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :4:11: error: 'try' not allowed inside defer expression // :4:5: note: defer expression here diff --git a/test/cases/compile_errors/return_from_naked_function.zig b/test/cases/compile_errors/return_from_naked_function.zig @@ -7,8 +7,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:5: error: cannot return from naked function // :2:5: note: can only return using assembly diff --git a/test/cases/compile_errors/return_incompatible_generic_struct.zig b/test/cases/compile_errors/return_incompatible_generic_struct.zig @@ -12,8 +12,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:18: error: expected type 'tmp.A(u32)', found 'tmp.B(u32)' // :5:12: note: struct declared here diff --git a/test/cases/compile_errors/return_invalid_type_from_test.zig b/test/cases/compile_errors/return_invalid_type_from_test.zig @@ -3,8 +3,6 @@ test "example" { } // error -// backend=stage2 -// target=native // is_test=true // // :2:12: error: expected type 'anyerror!void', found 'comptime_int' diff --git a/test/cases/compile_errors/return_undefined_from_noreturn.zig b/test/cases/compile_errors/return_undefined_from_noreturn.zig @@ -3,8 +3,6 @@ export fn entry() noreturn { } // error -// backend=stage2 -// target=native // // :2:12: error: function declared 'noreturn' returns // :1:19: note: 'noreturn' declared here diff --git a/test/cases/compile_errors/runtime_@ptrFromInt_to_comptime_only_type.zig b/test/cases/compile_errors/runtime_@ptrFromInt_to_comptime_only_type.zig @@ -9,7 +9,6 @@ pub export fn callbackFin(id: c_int, arg: ?*anyopaque) void { } // error -// target=native // // :5:54: error: pointer to comptime-only type '?*tmp.GuSettings' must be comptime-known, but operand is runtime-known // :2:10: note: struct requires comptime because of this field diff --git a/test/cases/compile_errors/runtime_cast_to_union_which_has_non-void_fields.zig b/test/cases/compile_errors/runtime_cast_to_union_which_has_non-void_fields.zig @@ -13,8 +13,6 @@ fn foo(l: Letter) void { } // error -// backend=stage2 -// target=native // // :11:22: error: runtime coercion from enum 'tmp.Letter' to union 'tmp.Value' which has non-void fields // :3:5: note: field 'A' has type 'i32' diff --git a/test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig b/test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :9:54: error: values of type '[]const builtin.Type.StructField' must be comptime-known, but index value is runtime-known // : note: struct requires comptime because of this field diff --git a/test/cases/compile_errors/runtime_indexing_comptime_array.zig b/test/cases/compile_errors/runtime_indexing_comptime_array.zig @@ -23,8 +23,6 @@ pub export fn entry3() void { _ = &i; } // error -// target=native -// backend=stage2 // // :7:10: error: values of type '[2]fn () void' must be comptime-known, but index value is runtime-known // :7:10: note: use '*const fn () void' for a function pointer type diff --git a/test/cases/compile_errors/runtime_to_comptime_num.zig b/test/cases/compile_errors/runtime_to_comptime_num.zig @@ -22,8 +22,6 @@ pub export fn entry4() void { } // error -// backend=stage2 -// target=native // // :4:27: error: unable to resolve comptime value // :4:27: note: value casted to 'comptime_int' must be comptime-known diff --git a/test/cases/compile_errors/runtime_value_in_switch_prong.zig b/test/cases/compile_errors/runtime_value_in_switch_prong.zig @@ -7,8 +7,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:9: error: unable to resolve comptime value // :4:9: note: switch prong values must be comptime-known diff --git a/test/cases/compile_errors/saturating_arithmetic_does_not_allow_floats.zig b/test/cases/compile_errors/saturating_arithmetic_does_not_allow_floats.zig @@ -3,7 +3,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:23: error: invalid operands to binary expression: 'float' and 'float' diff --git a/test/cases/compile_errors/saturating_shl_does_not_allow_negative_rhs.zig b/test/cases/compile_errors/saturating_shl_does_not_allow_negative_rhs.zig @@ -25,8 +25,6 @@ export fn d(rhs: @Vector(3, i32)) void { } // error -// backend=stage2 -// target=native // // :2:25: error: shift by negative amount '-1' // :7:12: error: shift by negative amount '-2' diff --git a/test/cases/compile_errors/self_referential_struct_requires_comptime.zig b/test/cases/compile_errors/self_referential_struct_requires_comptime.zig @@ -8,8 +8,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:12: error: variable of type 'tmp.S' must be const or comptime // :2:8: note: struct requires comptime because of this field diff --git a/test/cases/compile_errors/self_referential_union_requires_comptime.zig b/test/cases/compile_errors/self_referential_union_requires_comptime.zig @@ -8,8 +8,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:12: error: variable of type 'tmp.U' must be const or comptime // :2:8: note: union requires comptime because of this field diff --git a/test/cases/compile_errors/setting_a_section_on_a_local_variable.zig b/test/cases/compile_errors/setting_a_section_on_a_local_variable.zig @@ -4,7 +4,5 @@ export fn entry() i32 { } // error -// backend=stage2 -// target=native // // :2:30: error: cannot set section of local variable 'foo' diff --git a/test/cases/compile_errors/shift_amount_has_to_be_an_integer_type.zig b/test/cases/compile_errors/shift_amount_has_to_be_an_integer_type.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:20: error: expected type 'comptime_int', found pointer // :2:20: note: address-of operator always returns a pointer diff --git a/test/cases/compile_errors/shift_by_negative_comptime_integer.zig b/test/cases/compile_errors/shift_by_negative_comptime_integer.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:20: error: shift by negative amount '-1' diff --git a/test/cases/compile_errors/shift_on_type_with_non-power-of-two_size.zig b/test/cases/compile_errors/shift_on_type_with_non-power-of-two_size.zig @@ -28,8 +28,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:22: error: shift amount '24' is too large for operand type 'u24' // :11:22: error: shift amount '24' is too large for operand type 'u24' diff --git a/test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig b/test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig @@ -3,8 +3,6 @@ export fn entry(x: u8, y: u8) u8 { } // error -// backend=stage2 -// target=native // // :2:17: error: expected type 'u3', found 'u8' // :2:17: note: unsigned 3-bit int cannot represent all possible unsigned 8-bit values diff --git a/test/cases/compile_errors/shifting_without_int_type_or_comptime_known.zig b/test/cases/compile_errors/shifting_without_int_type_or_comptime_known.zig @@ -16,8 +16,6 @@ export fn entry3() void { } // error -// backend=stage2 -// target=native // // :2:17: error: LHS of shift must be a fixed-width integer type, or RHS must be comptime-known // :5:17: error: LHS of shift must be a fixed-width integer type, or RHS must be comptime-known diff --git a/test/cases/compile_errors/shlExact_shifts_out_1_bits.zig b/test/cases/compile_errors/shlExact_shifts_out_1_bits.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: overflow of integer type 'u8' with value '340' diff --git a/test/cases/compile_errors/shrExact_shifts_out_1_bits.zig b/test/cases/compile_errors/shrExact_shifts_out_1_bits.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:15: error: exact shift shifted out 1 bits diff --git a/test/cases/compile_errors/signed_integer_division.zig b/test/cases/compile_errors/signed_integer_division.zig @@ -3,7 +3,5 @@ export fn foo(a: i32, b: i32) i32 { } // error -// backend=stage2 -// target=native // // :2:14: error: division with 'i32' and 'i32': signed integers must use @divTrunc, @divFloor, or @divExact diff --git a/test/cases/compile_errors/sizeOf_bad_type.zig b/test/cases/compile_errors/sizeOf_bad_type.zig @@ -3,7 +3,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :2:20: error: no size available for type '@TypeOf(null)' diff --git a/test/cases/compile_errors/slice_cannot_have_its_bytes_reinterpreted.zig b/test/cases/compile_errors/slice_cannot_have_its_bytes_reinterpreted.zig @@ -4,7 +4,5 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :3:49: error: comptime dereference requires '[]const u8' to have a well-defined layout diff --git a/test/cases/compile_errors/slice_of_non_array_type.zig b/test/cases/compile_errors/slice_of_non_array_type.zig @@ -3,7 +3,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:10: error: slice of non-array type 'comptime_int' diff --git a/test/cases/compile_errors/slice_of_null_pointer.zig b/test/cases/compile_errors/slice_of_null_pointer.zig @@ -6,6 +6,5 @@ comptime { } // error -// target=native // // :5:10: error: slice of null pointer diff --git a/test/cases/compile_errors/slice_passed_as_array_init_type.zig b/test/cases/compile_errors/slice_passed_as_array_init_type.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:19: error: type '[]u8' does not support array initialization syntax // :2:19: note: inferred array length is specified with an underscore: '[_]u8' diff --git a/test/cases/compile_errors/slice_passed_as_array_init_type_with_elems.zig b/test/cases/compile_errors/slice_passed_as_array_init_type_with_elems.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:15: error: type '[]u8' does not support array initialization syntax // :2:15: note: inferred array length is specified with an underscore: '[_]u8' diff --git a/test/cases/compile_errors/slice_sentinel_mismatch-1.zig b/test/cases/compile_errors/slice_sentinel_mismatch-1.zig @@ -9,8 +9,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :2:37: error: expected type '[2:1]u8', found '[2:2]u8' // :2:37: note: array sentinel '2' cannot cast into array sentinel '1' diff --git a/test/cases/compile_errors/slice_sentinel_mismatch-2.zig b/test/cases/compile_errors/slice_sentinel_mismatch-2.zig @@ -7,8 +7,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:12: error: expected type '[:0]u8', found '[]u8' // :3:12: note: destination pointer requires '0' sentinel diff --git a/test/cases/compile_errors/slice_to_anyopaque_pointer.zig b/test/cases/compile_errors/slice_to_anyopaque_pointer.zig @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:37: error: expected type '*const anyopaque', found '[]const u8' // :3:37: note: cannot implicitly cast slice '[]const u8' to anyopaque pointer '*const anyopaque' diff --git a/test/cases/compile_errors/specify_non-integer_enum_tag_type.zig b/test/cases/compile_errors/specify_non-integer_enum_tag_type.zig @@ -10,7 +10,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:20: error: expected integer tag type, found 'f32' diff --git a/test/cases/compile_errors/spirv_merge_logical_pointers.zig b/test/cases/compile_errors/spirv_merge_logical_pointers.zig @@ -11,7 +11,6 @@ export fn a() void { } // error -// backend=stage2 // target=spirv64-vulkan // // :9:13: error: value with non-mergable pointer type '*i32' depends on runtime control flow diff --git a/test/cases/compile_errors/stage1/obj/call_with_new_stack_on_unsupported_target.zig b/test/cases/compile_errors/stage1/obj/call_with_new_stack_on_unsupported_target.zig @@ -1,11 +0,0 @@ -var buf: [10]u8 align(16) = undefined; -export fn entry() void { - @call(.{ .stack = &buf }, foo, .{}); -} -fn foo() void {} - -// error -// backend=stage1 -// target=wasm32-wasi-none -// -// tmp.zig:3:5: error: target arch 'wasm32' does not support calling with a new stack diff --git a/test/cases/compile_errors/stage1/obj/generic_fn_as_parameter_without_comptime_keyword.zig b/test/cases/compile_errors/stage1/obj/generic_fn_as_parameter_without_comptime_keyword.zig @@ -1,11 +0,0 @@ -fn f(_: fn (anytype) void) void {} -fn g(_: anytype) void {} -export fn entry() void { - f(g); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:1:9: error: parameter of type 'fn (anytype) anytype' must be declared comptime diff --git a/test/cases/compile_errors/stage1/obj/generic_function_returning_opaque_type.zig b/test/cases/compile_errors/stage1/obj/generic_function_returning_opaque_type.zig @@ -1,25 +0,0 @@ -const FooType = opaque {}; -fn generic(comptime T: type) !T { - return undefined; -} -export fn bar() void { - _ = generic(FooType); -} -export fn bav() void { - _ = generic(@TypeOf(null)); -} -export fn baz() void { - _ = generic(@TypeOf(undefined)); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:6:16: error: call to generic function with Opaque return type 'FooType' not allowed -// tmp.zig:2:1: note: function declared here -// tmp.zig:1:1: note: type declared here -// tmp.zig:9:16: error: call to generic function with Null return type '@Type(.Null)' not allowed -// tmp.zig:2:1: note: function declared here -// tmp.zig:12:16: error: call to generic function with Undefined return type '@Type(.Undefined)' not allowed -// tmp.zig:2:1: note: function declared here diff --git a/test/cases/compile_errors/stage1/obj/generic_function_where_return_type_is_self-referenced.zig b/test/cases/compile_errors/stage1/obj/generic_function_where_return_type_is_self-referenced.zig @@ -1,13 +0,0 @@ -fn Foo(comptime T: type) Foo(T) { - return struct { x: T }; -} -export fn entry() void { - const t = Foo(u32){ .x = 1 }; - _ = t; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:1:29: error: evaluation exceeded 1000 backwards branches diff --git a/test/cases/compile_errors/stage1/obj/unsupported_modifier_at_start_of_asm_output_constraint.zig b/test/cases/compile_errors/stage1/obj/unsupported_modifier_at_start_of_asm_output_constraint.zig @@ -1,14 +0,0 @@ -export fn foo() void { - var bar: u32 = 3; - asm volatile ("" - : [baz] "+r" (bar), - : - : "" - ); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:3:5: error: invalid modifier starting output constraint for 'baz': '+', only '=' is supported. Compiler TODO: see https://github.com/ziglang/zig/issues/215 diff --git a/test/cases/compile_errors/stage1/obj/variable_in_inline_assembly_template_cannot_be_found.zig b/test/cases/compile_errors/stage1/obj/variable_in_inline_assembly_template_cannot_be_found.zig @@ -1,12 +0,0 @@ -export fn entry() void { - var sp = asm volatile ("mov %[foo], sp" - : [bar] "=r" (-> usize), - ); - _ = &sp; -} - -// error -// backend=stage1 -// target=x86_64-linux-gnu -// -// tmp.zig:2:14: error: could not find 'foo' in the inputs or outputs diff --git a/test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig b/test/cases/compile_errors/std.fmt_error_for_unused_arguments.zig @@ -3,7 +3,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :?:?: error: 10 unused arguments in '{d} {d} {d} {d} {d}' diff --git a/test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig b/test/cases/compile_errors/store_vector_pointer_with_unknown_runtime_index.zig @@ -11,7 +11,5 @@ fn storev(ptr: anytype, val: i31) void { } // error -// backend=stage2 -// target=native // // :10:8: error: unable to determine vector element index of type '*align(16:0:4:?) i31' diff --git a/test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig b/test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig @@ -11,7 +11,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:17: error: struct 'tmp.LhsExpr' depends on itself diff --git a/test/cases/compile_errors/struct_duplicate_field_name.zig b/test/cases/compile_errors/struct_duplicate_field_name.zig @@ -9,7 +9,6 @@ export fn entry() void { } // error -// target=native // // :2:5: error: duplicate struct member name 'foo' // :3:5: note: duplicate name here diff --git a/test/cases/compile_errors/struct_init_passed_to_type_param.zig b/test/cases/compile_errors/struct_init_passed_to_type_param.zig @@ -7,8 +7,6 @@ fn hi(comptime T: type) usize { export const value = hi(MyStruct{ .x = 12 }); // error -// backend=stage2 -// target=native // // :7:33: error: expected type 'type', found 'tmp.MyStruct' // :1:18: note: struct declared here diff --git a/test/cases/compile_errors/struct_init_syntax_for_array.zig b/test/cases/compile_errors/struct_init_syntax_for_array.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:13: error: initializing array with struct syntax diff --git a/test/cases/compile_errors/struct_type_mismatch_in_arg.zig b/test/cases/compile_errors/struct_type_mismatch_in_arg.zig @@ -9,8 +9,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :7:15: error: expected type 'tmp.Foo', found 'tmp.Bar' // :2:13: note: struct declared here diff --git a/test/cases/compile_errors/struct_type_returned_from_non-generic_function.zig b/test/cases/compile_errors/struct_type_returned_from_non-generic_function.zig @@ -3,8 +3,6 @@ pub export fn entry(param: usize) usize { } // error -// backend=stage2 -// target=native // // :2:12: error: expected type 'usize', found 'type' // :1:35: note: function return type declared here diff --git a/test/cases/compile_errors/struct_with_declarations_unavailable_for_reify_type.zig b/test/cases/compile_errors/struct_with_declarations_unavailable_for_reify_type.zig @@ -5,7 +5,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:9: error: reified structs must have no decls diff --git a/test/cases/compile_errors/struct_with_invalid_field.zig b/test/cases/compile_errors/struct_with_invalid_field.zig @@ -24,7 +24,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :14:17: error: use of undeclared identifier 'HeaderValue' diff --git a/test/cases/compile_errors/sub_sat_on_undefined_value.zig b/test/cases/compile_errors/sub_sat_on_undefined_value.zig @@ -12,8 +12,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :6:5: error: found compile log statement // diff --git a/test/cases/compile_errors/sub_wrap_on_undefined_value.zig b/test/cases/compile_errors/sub_wrap_on_undefined_value.zig @@ -12,8 +12,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :6:5: error: found compile log statement // diff --git a/test/cases/compile_errors/switch_capture_incompatible_types.zig b/test/cases/compile_errors/switch_capture_incompatible_types.zig @@ -15,8 +15,6 @@ export fn g() void { } // error -// backend=stage2 -// target=native // // :5:20: error: capture group with incompatible types // :5:20: note: incompatible types: 'u32' and '*u8' diff --git a/test/cases/compile_errors/switch_expression-duplicate_enumeration_prong.zig b/test/cases/compile_errors/switch_expression-duplicate_enumeration_prong.zig @@ -19,8 +19,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :13:15: error: duplicate switch value // :10:15: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-duplicate_enumeration_prong_when_else_present.zig b/test/cases/compile_errors/switch_expression-duplicate_enumeration_prong_when_else_present.zig @@ -20,8 +20,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :13:15: error: duplicate switch value // :10:15: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-duplicate_error_prong.zig b/test/cases/compile_errors/switch_expression-duplicate_error_prong.zig @@ -24,8 +24,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:9: error: duplicate switch value // :5:9: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-duplicate_error_prong_when_else_present.zig b/test/cases/compile_errors/switch_expression-duplicate_error_prong_when_else_present.zig @@ -26,8 +26,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:9: error: duplicate switch value // :5:9: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-duplicate_or_overlapping_integer_value.zig b/test/cases/compile_errors/switch_expression-duplicate_or_overlapping_integer_value.zig @@ -11,8 +11,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :6:12: error: duplicate switch value // :5:17: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-duplicate_type.zig b/test/cases/compile_errors/switch_expression-duplicate_type.zig @@ -12,8 +12,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :6:9: error: duplicate switch value // :4:9: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-duplicate_type_struct_alias.zig b/test/cases/compile_errors/switch_expression-duplicate_type_struct_alias.zig @@ -16,8 +16,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :10:9: error: duplicate switch value // :8:9: note: previous value here diff --git a/test/cases/compile_errors/switch_expression-missing_enumeration_prong.zig b/test/cases/compile_errors/switch_expression-missing_enumeration_prong.zig @@ -17,8 +17,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:5: error: switch must handle all possibilities // :5:5: note: unhandled enumeration value: 'Four' diff --git a/test/cases/compile_errors/switch_expression-missing_error_prong.zig b/test/cases/compile_errors/switch_expression-missing_error_prong.zig @@ -24,8 +24,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:27: error: switch must handle all possibilities // :8:27: note: unhandled error value: 'error.Four' diff --git a/test/cases/compile_errors/switch_expression-multiple_else_prongs.zig b/test/cases/compile_errors/switch_expression-multiple_else_prongs.zig @@ -26,8 +26,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:9: error: multiple else prongs in switch expression // :4:9: note: previous else prong here diff --git a/test/cases/compile_errors/switch_expression-non_exhaustive_integer_prongs.zig b/test/cases/compile_errors/switch_expression-non_exhaustive_integer_prongs.zig @@ -8,7 +8,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :2:5: error: switch must handle all possibilities diff --git a/test/cases/compile_errors/switch_expression-switch_on_pointer_type_with_no_else.zig b/test/cases/compile_errors/switch_expression-switch_on_pointer_type_with_no_else.zig @@ -9,7 +9,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :2:5: error: else prong required when switching on type '*u8' diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_bool.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_bool.zig @@ -10,7 +10,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :5:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_enum.zig @@ -20,7 +20,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :14:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_error.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_error.zig @@ -25,8 +25,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :7:14: error: unreachable else prong; all cases already handled // :17:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_range_i8.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_range_i8.zig @@ -13,7 +13,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_range_u8.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_range_u8.zig @@ -13,7 +13,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_u1.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_u1.zig @@ -10,7 +10,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :5:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_expression-unreachable_else_prong_u2.zig b/test/cases/compile_errors/switch_expression-unreachable_else_prong_u2.zig @@ -12,7 +12,5 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :7:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/switch_on_enum_with_1_field_with_no_prongs.zig b/test/cases/compile_errors/switch_on_enum_with_1_field_with_no_prongs.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:5: error: switch must handle all possibilities // :1:20: note: unhandled enumeration value: 'M' diff --git a/test/cases/compile_errors/switch_on_error_with_1_field_with_no_prongs.zig b/test/cases/compile_errors/switch_on_error_with_1_field_with_no_prongs.zig @@ -11,8 +11,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :5:24: error: switch must handle all possibilities // :5:24: note: unhandled error value: 'error.M' diff --git a/test/cases/compile_errors/switch_on_error_with_capture_by_reference.zig b/test/cases/compile_errors/switch_on_error_with_capture_by_reference.zig @@ -17,8 +17,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :4:24: error: error set cannot be captured by reference // :13:24: error: error set cannot be captured by reference diff --git a/test/cases/compile_errors/switch_on_error_with_non_trivial_switch_operand.zig b/test/cases/compile_errors/switch_on_error_with_non_trivial_switch_operand.zig @@ -15,8 +15,6 @@ export fn entry2() void { } // error -// backend=stage2 -// target=native // // :4:42: error: invalid operands to binary expression: 'error_set' and 'comptime_int' // :12:35: error: invalid operands to binary expression: 'error_set' and 'comptime_int' diff --git a/test/cases/compile_errors/switch_on_non_err_union.zig b/test/cases/compile_errors/switch_on_non_err_union.zig @@ -5,7 +5,6 @@ pub fn main() void { } // error -// backend=stage2 // target=x86_64-linux // // :2:23: error: expected error union type, found 'bool' diff --git a/test/cases/compile_errors/switch_on_slice.zig b/test/cases/compile_errors/switch_on_slice.zig @@ -8,7 +8,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:13: error: switch on type '[:0]const u8' diff --git a/test/cases/compile_errors/switch_on_union_with_no_attached_enum.zig b/test/cases/compile_errors/switch_on_union_with_no_attached_enum.zig @@ -15,8 +15,6 @@ fn foo(a: *const Payload) void { } // error -// backend=stage2 -// target=native // // :11:14: error: switch on union with no attached enum // :1:17: note: consider 'union(enum)' here diff --git a/test/cases/compile_errors/switch_ranges_endpoints_are_validated.zig b/test/cases/compile_errors/switch_ranges_endpoints_are_validated.zig @@ -14,8 +14,6 @@ pub export fn entr2() void { } // error -// backend=stage2 -// target=native // // :4:10: error: range start value is greater than the end value // :11:11: error: range start value is greater than the end value diff --git a/test/cases/compile_errors/switch_with_overlapping_case_ranges.zig b/test/cases/compile_errors/switch_with_overlapping_case_ranges.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:10: error: duplicate switch value // :4:10: note: previous value here diff --git a/test/cases/compile_errors/switching_with_exhaustive_enum_has___prong_.zig b/test/cases/compile_errors/switching_with_exhaustive_enum_has___prong_.zig @@ -12,8 +12,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:5: error: '_' prong only allowed when switching on non-exhaustive enums // :10:9: note: '_' prong here diff --git a/test/cases/compile_errors/switching_with_non-exhaustive_enums.zig b/test/cases/compile_errors/switching_with_non-exhaustive_enums.zig @@ -31,8 +31,6 @@ pub export fn entry3() void { } // error -// backend=stage2 -// target=native // // :12:5: error: switch must handle all possibilities // :3:5: note: unhandled enumeration value: 'b' diff --git a/test/cases/compile_errors/tab_inside_comment.zig b/test/cases/compile_errors/tab_inside_comment.zig @@ -2,7 +2,5 @@ export fn entry() void {} // error -// backend=stage2 -// target=native // // :1:8: error: comment contains invalid byte: '\t' diff --git a/test/cases/compile_errors/tab_inside_doc_comment.zig b/test/cases/compile_errors/tab_inside_doc_comment.zig @@ -2,7 +2,5 @@ export fn entry() void {} // error -// backend=stage2 -// target=native // // :1:13: error: comment contains invalid byte: '\t' diff --git a/test/cases/compile_errors/tab_inside_multiline_string.zig b/test/cases/compile_errors/tab_inside_multiline_string.zig @@ -7,7 +7,5 @@ export fn entry() void { _ = foo; } // error -// backend=stage2 -// target=native // // :4:11: error: string literal contains invalid byte: '\t' diff --git a/test/cases/compile_errors/tab_inside_string.zig b/test/cases/compile_errors/tab_inside_string.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:18: error: string literal contains invalid byte: '\t' diff --git a/test/cases/compile_errors/tagName_on_invalid_value_of_non-exhaustive_enum.zig b/test/cases/compile_errors/tagName_on_invalid_value_of_non-exhaustive_enum.zig @@ -4,8 +4,6 @@ test "enum" { } // error -// backend=stage2 -// target=native // is_test=true // // :3:9: error: no field with value '@enumFromInt(5)' in enum 'tmp.test.enum.E' diff --git a/test/cases/compile_errors/tagName_used_on_union_with_no_associated_enum_tag.zig b/test/cases/compile_errors/tagName_used_on_union_with_no_associated_enum_tag.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :7:9: error: union 'tmp.FloatInt' is untagged // :1:25: note: union declared here diff --git a/test/cases/compile_errors/tag_capture_on_non_inline_prong.zig b/test/cases/compile_errors/tag_capture_on_non_inline_prong.zig @@ -8,7 +8,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :5:26: error: tag capture on non-inline prong diff --git a/test/cases/compile_errors/take_slice_of_invalid_dereference.zig b/test/cases/compile_errors/take_slice_of_invalid_dereference.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:18: error: cannot dereference non-pointer type 'comptime_int' diff --git a/test/cases/compile_errors/threadlocal_qualifier_on_const.zig b/test/cases/compile_errors/threadlocal_qualifier_on_const.zig @@ -4,7 +4,5 @@ export fn entry() i32 { } // error -// backend=stage2 -// target=native // // :1:1: error: threadlocal variable cannot be constant diff --git a/test/cases/compile_errors/too_big_packed_struct.zig b/test/cases/compile_errors/too_big_packed_struct.zig @@ -7,7 +7,5 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:22: error: size of packed struct '131070' exceeds maximum bit width of 65535 diff --git a/test/cases/compile_errors/top_level_decl_dependency_loop.zig b/test/cases/compile_errors/top_level_decl_dependency_loop.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:1: error: dependency loop detected diff --git a/test/cases/compile_errors/truncate_sign_mismatch.zig b/test/cases/compile_errors/truncate_sign_mismatch.zig @@ -16,8 +16,6 @@ export fn entry4() u8 { } // error -// backend=stage2 -// target=native // // :3:26: error: expected signed integer type, found 'u32' // :7:26: error: expected unsigned integer type, found 'i32' diff --git a/test/cases/compile_errors/try_in_function_with_non_error_return_type.zig b/test/cases/compile_errors/try_in_function_with_non_error_return_type.zig @@ -4,8 +4,6 @@ export fn f() void { fn something() anyerror!void {} // error -// backend=stage2 -// target=native // // :2:5: error: expected type 'void', found 'anyerror' // :1:15: note: function cannot return an error diff --git a/test/cases/compile_errors/try_return.zig b/test/cases/compile_errors/try_return.zig @@ -4,8 +4,6 @@ pub fn foo() !void { pub fn bar() !void {} // error -// backend=stage2 -// target=native // // :2:5: error: unreachable code // :2:9: note: control flow is diverted here diff --git a/test/cases/compile_errors/tuple_declarations.zig b/test/cases/compile_errors/tuple_declarations.zig @@ -16,8 +16,6 @@ const T = struct { }; // error -// backend=stage2 -// target=native // // :2:5: error: enum field missing name // :5:5: error: union field missing name diff --git a/test/cases/compile_errors/tuple_init_edge_cases.zig b/test/cases/compile_errors/tuple_init_edge_cases.zig @@ -66,8 +66,6 @@ pub export fn entry6() void { } // error -// backend=stage2 -// target=native // // :18:14: error: missing tuple field with index 1 // :25:14: error: missing tuple field with index 1 diff --git a/test/cases/compile_errors/tuple_ptr_to_mut_slice.zig b/test/cases/compile_errors/tuple_ptr_to_mut_slice.zig @@ -19,8 +19,6 @@ export fn entry4() void { } // error -// backend=stage2 -// target=native // // :3:19: error: cannot cast pointer to tuple to '[]u8' // :3:19: note: pointers to tuples can only coerce to constant pointers diff --git a/test/cases/compile_errors/type_checking_function_pointers.zig b/test/cases/compile_errors/type_checking_function_pointers.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:7: error: expected type '*const fn (*const u8) void', found '*const fn (u8) void' // :8:7: note: pointer type child 'fn (u8) void' cannot cast into pointer type child 'fn (*const u8) void' diff --git a/test/cases/compile_errors/type_error_in_implicit_return.zig b/test/cases/compile_errors/type_error_in_implicit_return.zig @@ -8,8 +8,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:16: error: function with non-void return type 'u32' implicitly returns // :3:1: note: control flow reaches end of body here diff --git a/test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig b/test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig @@ -7,8 +7,6 @@ export fn main() void { } // error -// backend=stage2 -// target=native // // :5:22: error: expected type '?fn ([*c]u8, ...) callconv(.c) void', found 'fn ([*:0]u8, ...) callconv(.c) void' // :5:22: note: parameter 0 '[*:0]u8' cannot cast into '[*c]u8' diff --git a/test/cases/compile_errors/type_mismatch_with_tuple_concatenation.zig b/test/cases/compile_errors/type_mismatch_with_tuple_concatenation.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:11: error: expected type '@TypeOf(.{})', found 'struct { comptime comptime_int = 1, comptime comptime_int = 2, comptime comptime_int = 3 }' diff --git a/test/cases/compile_errors/type_variables_must_be_constant.zig b/test/cases/compile_errors/type_variables_must_be_constant.zig @@ -4,8 +4,6 @@ export fn entry() foo { } // error -// backend=stage2 -// target=native // // :1:11: error: variable of type 'type' must be const or comptime // :1:11: note: types are not available at runtime diff --git a/test/cases/compile_errors/undeclared_identifier.zig b/test/cases/compile_errors/undeclared_identifier.zig @@ -3,7 +3,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:12: error: use of undeclared identifier 'b' diff --git a/test/cases/compile_errors/undeclared_identifier_error_should_mark_fn_as_impure.zig b/test/cases/compile_errors/undeclared_identifier_error_should_mark_fn_as_impure.zig @@ -6,7 +6,5 @@ fn test_a_thing() void { } // error -// backend=stage2 -// target=native // // :5:5: error: use of undeclared identifier 'bad_fn_call' diff --git a/test/cases/compile_errors/undeclared_identifier_in_unanalyzed_branch.zig b/test/cases/compile_errors/undeclared_identifier_in_unanalyzed_branch.zig @@ -5,7 +5,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :3:9: error: use of undeclared identifier 'lol_this_doesnt_exist' diff --git a/test/cases/compile_errors/undefined_function_call.zig b/test/cases/compile_errors/undefined_function_call.zig @@ -3,7 +3,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :2:5: error: use of undeclared identifier 'b' diff --git a/test/cases/compile_errors/underscore_is_not_a_declarable_symbol.zig b/test/cases/compile_errors/underscore_is_not_a_declarable_symbol.zig @@ -4,7 +4,5 @@ export fn f1() usize { } // error -// backend=stage2 -// target=native // // :2:9: error: '_' used as an identifier without @"_" syntax diff --git a/test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig b/test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig @@ -7,7 +7,5 @@ export fn returns() void { } // error -// backend=stage2 -// target=native // // :4:20: error: '_' used as an identifier without @"_" syntax diff --git a/test/cases/compile_errors/underscore_should_not_be_usable_inside_while.zig b/test/cases/compile_errors/underscore_should_not_be_usable_inside_while.zig @@ -10,7 +10,5 @@ fn optionalReturn() ?u32 { } // error -// backend=stage2 -// target=native // // :4:20: error: '_' used as an identifier without @"_" syntax diff --git a/test/cases/compile_errors/underscore_should_not_be_usable_inside_while_else.zig b/test/cases/compile_errors/underscore_should_not_be_usable_inside_while_else.zig @@ -12,7 +12,5 @@ fn optionalReturnError() !?u32 { } // error -// backend=stage2 -// target=native // // :6:17: error: '_' used as an identifier without @"_" syntax diff --git a/test/cases/compile_errors/unhandled_enum_value_in_switch_with_enum_declared_in_other_file.zig b/test/cases/compile_errors/unhandled_enum_value_in_switch_with_enum_declared_in_other_file.zig @@ -6,8 +6,6 @@ pub export fn entry1() void { } // error -// backend=stage2 -// target=native // // :5:5: error: switch must handle all possibilities // :?:?: note: unhandled enumeration value: 'gt' diff --git a/test/cases/compile_errors/union_access_of_inactive_field.zig b/test/cases/compile_errors/union_access_of_inactive_field.zig @@ -10,7 +10,6 @@ comptime { } // error -// target=native // // :7:16: error: access of union field 'b' while field 'a' is active // :1:11: note: union declared here diff --git a/test/cases/compile_errors/union_auto-enum_value_already_taken.zig b/test/cases/compile_errors/union_auto-enum_value_already_taken.zig @@ -11,8 +11,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :6:9: error: enum tag value 60 already taken // :4:9: note: other occurrence here diff --git a/test/cases/compile_errors/union_calling_inactive_field_as_fn.zig b/test/cases/compile_errors/union_calling_inactive_field_as_fn.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:10: error: access of union field 'float' while field 'int' is active // :1:11: note: union declared here diff --git a/test/cases/compile_errors/union_duplicate_enum_field.zig b/test/cases/compile_errors/union_duplicate_enum_field.zig @@ -10,7 +10,6 @@ export fn foo() void { } // error -// target=native // // :3:5: error: duplicate union member name 'a' // :4:5: note: duplicate name here diff --git a/test/cases/compile_errors/union_duplicate_field_definition.zig b/test/cases/compile_errors/union_duplicate_field_definition.zig @@ -9,7 +9,6 @@ export fn entry() void { } // error -// target=native // // :2:5: error: duplicate union member name 'foo' // :3:5: note: duplicate name here diff --git a/test/cases/compile_errors/union_enum_field_does_not_match_enum.zig b/test/cases/compile_errors/union_enum_field_does_not_match_enum.zig @@ -15,8 +15,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :10:5: error: no field named 'D' in enum 'tmp.Letter' // :1:16: note: enum declared here diff --git a/test/cases/compile_errors/union_enum_field_missing.zig b/test/cases/compile_errors/union_enum_field_missing.zig @@ -14,7 +14,6 @@ export fn entry() usize { } // error -// target=native // // :7:11: error: enum field(s) missing in union // :4:5: note: field 'c' missing, declared here diff --git a/test/cases/compile_errors/union_extra_field.zig b/test/cases/compile_errors/union_extra_field.zig @@ -14,7 +14,6 @@ export fn entry() usize { } // error -// target=native // // :10:5: error: no field named 'd' in enum 'tmp.E' // :1:11: note: enum declared here diff --git a/test/cases/compile_errors/union_fields_are_resolved_before_tag_type_is_needed.zig b/test/cases/compile_errors/union_fields_are_resolved_before_tag_type_is_needed.zig @@ -9,8 +9,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :8:8: error: no field or member function named 'f' in '@typeInfo(tmp.T).@"union".tag_type.?' // :1:11: note: enum declared here diff --git a/test/cases/compile_errors/union_init_with_non_type_as_first_param.zig b/test/cases/compile_errors/union_init_with_non_type_as_first_param.zig @@ -3,7 +3,5 @@ export fn u() void { } // error -// backend=stage2 -// target=native // // :2:20: error: expected type 'type', found 'comptime_int' diff --git a/test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig b/test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig @@ -24,8 +24,6 @@ export fn u2m() void { } // error -// backend=stage2 -// target=native // // :10:20: error: union initializer must initialize one field // :14:20: error: cannot initialize multiple union fields at once; unions can only have one active field diff --git a/test/cases/compile_errors/union_init_with_struct_as_first_param.zig b/test/cases/compile_errors/union_init_with_struct_as_first_param.zig @@ -7,8 +7,6 @@ export fn u() void { } // error -// backend=stage2 -// target=native // // :6:20: error: expected union type, found 'tmp.S' // :1:11: note: struct declared here diff --git a/test/cases/compile_errors/union_noreturn_field_initialized.zig b/test/cases/compile_errors/union_noreturn_field_initialized.zig @@ -29,8 +29,6 @@ pub export fn entry3() void { } // error -// backend=stage2 -// target=native // // :11:14: error: cannot initialize 'noreturn' field of union // :4:9: note: field 'b' declared here diff --git a/test/cases/compile_errors/union_runtime_coercion_from_enum.zig b/test/cases/compile_errors/union_runtime_coercion_from_enum.zig @@ -15,7 +15,6 @@ export fn doTheTest() u64 { } // error -// target=native // // :13:19: error: runtime coercion from enum 'tmp.E' to union 'tmp.U' which has non-void fields // :6:5: note: field 'a' has type 'u32' diff --git a/test/cases/compile_errors/union_with_specified_enum_omits_field.zig b/test/cases/compile_errors/union_with_specified_enum_omits_field.zig @@ -12,8 +12,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :6:17: error: enum field(s) missing in union // :4:5: note: field 'C' missing, declared here diff --git a/test/cases/compile_errors/union_with_too_small_explicit_signed_tag_type.zig b/test/cases/compile_errors/union_with_too_small_explicit_signed_tag_type.zig @@ -9,8 +9,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:22: error: specified integer tag type cannot represent every field // :1:22: note: type 'i2' cannot fit values in range 0...3 diff --git a/test/cases/compile_errors/union_with_too_small_explicit_unsigned_tag_type.zig b/test/cases/compile_errors/union_with_too_small_explicit_unsigned_tag_type.zig @@ -10,8 +10,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:22: error: specified integer tag type cannot represent every field // :1:22: note: type 'u2' cannot fit values in range 0...4 diff --git a/test/cases/compile_errors/unknown_length_pointer_to_opaque.zig b/test/cases/compile_errors/unknown_length_pointer_to_opaque.zig @@ -1,7 +1,5 @@ export const T = [*]opaque {}; // error -// backend=stage2 -// target=native // // :1:21: error: unknown-length pointer to opaque not allowed diff --git a/test/cases/compile_errors/unreachable_code-double_break.zig b/test/cases/compile_errors/unreachable_code-double_break.zig @@ -6,8 +6,6 @@ export fn a() void { } // error -// backend=stage2 -// target=native // // :3:9: error: unreachable code // :3:20: note: control flow is diverted here diff --git a/test/cases/compile_errors/unreachable_code-nested_returns.zig b/test/cases/compile_errors/unreachable_code-nested_returns.zig @@ -3,8 +3,6 @@ export fn a() i32 { } // error -// backend=stage2 -// target=native // // :2:5: error: unreachable code // :2:12: note: control flow is diverted here diff --git a/test/cases/compile_errors/unreachable_code.zig b/test/cases/compile_errors/unreachable_code.zig @@ -6,8 +6,6 @@ export fn a() void { fn b() void {} // error -// backend=stage2 -// target=native // // :3:6: error: unreachable code // :2:5: note: control flow is diverted here diff --git a/test/cases/compile_errors/unreachable_else_prong_err_set.zig b/test/cases/compile_errors/unreachable_else_prong_err_set.zig @@ -21,7 +21,5 @@ pub export fn simple() void { } // error -// backend=stage2 -// target=native // // :7:14: error: unreachable else prong; all cases already handled diff --git a/test/cases/compile_errors/unreachable_in_naked_func.zig b/test/cases/compile_errors/unreachable_in_naked_func.zig @@ -19,8 +19,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:5: error: runtime safety check not allowed in naked function // :2:5: note: use @setRuntimeSafety to disable runtime safety diff --git a/test/cases/compile_errors/unreachable_parameter.zig b/test/cases/compile_errors/unreachable_parameter.zig @@ -6,7 +6,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:6: error: parameter of type 'noreturn' not allowed diff --git a/test/cases/compile_errors/unreachable_variable.zig b/test/cases/compile_errors/unreachable_variable.zig @@ -4,7 +4,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:25: error: cannot cast to noreturn diff --git a/test/cases/compile_errors/unreachable_with_return.zig b/test/cases/compile_errors/unreachable_with_return.zig @@ -6,8 +6,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:5: error: function declared 'noreturn' returns // :1:8: note: 'noreturn' declared here diff --git a/test/cases/compile_errors/untagged_union_integer_conversion.zig b/test/cases/compile_errors/untagged_union_integer_conversion.zig @@ -4,8 +4,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:18: error: untagged union 'tmp.UntaggedUnion' cannot be converted to integer // :1:23: note: union declared here diff --git a/test/cases/compile_errors/unused_value_in_switch_in_loop.zig b/test/cases/compile_errors/unused_value_in_switch_in_loop.zig @@ -8,8 +8,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:18: error: incompatible types: 'comptime_int' and 'void' // :4:14: note: type 'comptime_int' here diff --git a/test/cases/compile_errors/unused_variable_error_on_errdefer.zig b/test/cases/compile_errors/unused_variable_error_on_errdefer.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:15: error: unused capture diff --git a/test/cases/compile_errors/use_anyopaque_as_return_type_of_fn_ptr.zig b/test/cases/compile_errors/use_anyopaque_as_return_type_of_fn_ptr.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:20: error: opaque return type 'anyopaque' not allowed diff --git a/test/cases/compile_errors/use_implicit_casts_to_assign_null_to_non-nullable_pointer.zig b/test/cases/compile_errors/use_implicit_casts_to_assign_null_to_non-nullable_pointer.zig @@ -7,8 +7,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :4:24: error: expected type '*?*i32', found '**i32' // :4:24: note: pointer type child '*i32' cannot cast into pointer type child '?*i32' 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 @@ -5,8 +5,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :1:9: error: variable of type 'comptime_int' must be const or comptime // :1:9: note: to modify this variable at runtime, it must be given an explicit fixed-size number type diff --git a/test/cases/compile_errors/use_of_undeclared_identifier.zig b/test/cases/compile_errors/use_of_undeclared_identifier.zig @@ -3,7 +3,5 @@ export fn f() void { } // error -// backend=stage2 -// target=native // // :2:5: error: use of undeclared identifier 'b' diff --git a/test/cases/compile_errors/using_an_unknown_len_ptr_type_instead_of_array.zig b/test/cases/compile_errors/using_an_unknown_len_ptr_type_instead_of_array.zig @@ -7,7 +7,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :1:21: error: type '[*][*]const u8' does not support array initialization syntax diff --git a/test/cases/compile_errors/variable_has_wrong_type.zig b/test/cases/compile_errors/variable_has_wrong_type.zig @@ -4,8 +4,6 @@ export fn f() i32 { } // error -// backend=stage2 -// target=native // // :3:12: error: expected type 'i32', found '*const [1:0]u8' // :1:15: note: function return type declared here diff --git a/test/cases/compile_errors/variable_initialization_compile_error_then_referenced.zig b/test/cases/compile_errors/variable_initialization_compile_error_then_referenced.zig @@ -13,7 +13,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:12: error: use of undeclared identifier 'T' diff --git a/test/cases/compile_errors/variable_with_type_noreturn.zig b/test/cases/compile_errors/variable_with_type_noreturn.zig @@ -4,8 +4,6 @@ export fn entry9() void { } // error -// backend=stage2 -// target=native // // :2:5: error: unreachable code // :2:23: note: control flow is diverted here diff --git a/test/cases/compile_errors/variadic_arg_validation.zig b/test/cases/compile_errors/variadic_arg_validation.zig @@ -19,8 +19,6 @@ pub export fn entry3() void { } // error -// backend=stage2 -// target=native // // :4:33: error: integer and float literals passed to variadic function must be casted to a fixed-size number type // :9:24: error: arrays must be passed by reference to variadic function diff --git a/test/cases/compile_errors/vector_index_out_of_bounds.zig b/test/cases/compile_errors/vector_index_out_of_bounds.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:30: error: expected 3 vector elements; found 4 diff --git a/test/cases/compile_errors/volatile_on_global_assembly.zig b/test/cases/compile_errors/volatile_on_global_assembly.zig @@ -3,7 +3,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:9: error: volatile is meaningless on global assembly diff --git a/test/cases/compile_errors/wasmMemoryGrow_is_a_compile_error_in_non-Wasm_targets.zig b/test/cases/compile_errors/wasmMemoryGrow_is_a_compile_error_in_non-Wasm_targets.zig @@ -4,7 +4,6 @@ export fn foo() void { } // error -// backend=stage2 // target=x86_64-native // // :2:9: error: builtin @wasmMemoryGrow is available when targeting WebAssembly; targeted CPU architecture is x86_64 diff --git a/test/cases/compile_errors/wasmMemorySize_is_a_compile_error_in_non-Wasm_targets.zig b/test/cases/compile_errors/wasmMemorySize_is_a_compile_error_in_non-Wasm_targets.zig @@ -4,7 +4,6 @@ export fn foo() void { } // error -// backend=stage2 // target=x86_64-native // // :2:9: error: builtin @wasmMemorySize is available when targeting WebAssembly; targeted CPU architecture is x86_64 diff --git a/test/cases/compile_errors/while_expected_bool_got_error_union.zig b/test/cases/compile_errors/while_expected_bool_got_error_union.zig @@ -6,7 +6,5 @@ fn bar() anyerror!i32 { } // error -// backend=stage2 -// target=native // // :2:15: error: expected type 'bool', found 'anyerror!i32' diff --git a/test/cases/compile_errors/while_expected_bool_got_optional.zig b/test/cases/compile_errors/while_expected_bool_got_optional.zig @@ -6,7 +6,5 @@ fn bar() ?i32 { } // error -// backend=stage2 -// target=native // // :2:15: error: expected type 'bool', found '?i32' diff --git a/test/cases/compile_errors/while_expected_error_union_got_bool.zig b/test/cases/compile_errors/while_expected_error_union_got_bool.zig @@ -10,7 +10,5 @@ fn bar() bool { } // error -// backend=stage2 -// target=native // // :2:15: error: expected error union type, found 'bool' diff --git a/test/cases/compile_errors/while_expected_error_union_got_optional.zig b/test/cases/compile_errors/while_expected_error_union_got_optional.zig @@ -10,7 +10,5 @@ fn bar() ?i32 { } // error -// backend=stage2 -// target=native // // :2:15: error: expected error union type, found '?i32' diff --git a/test/cases/compile_errors/while_expected_optional_got_bool.zig b/test/cases/compile_errors/while_expected_optional_got_bool.zig @@ -8,7 +8,5 @@ fn bar() bool { } // error -// backend=stage2 -// target=native // // :2:15: error: expected optional type, found 'bool' diff --git a/test/cases/compile_errors/while_expected_optional_got_error_union.zig b/test/cases/compile_errors/while_expected_optional_got_error_union.zig @@ -8,8 +8,6 @@ fn bar() anyerror!i32 { } // error -// backend=stage2 -// target=native // // :2:15: error: expected optional type, found 'anyerror!i32' // :2:15: note: consider using 'try', 'catch', or 'if' diff --git a/test/cases/compile_errors/while_loop_body_expression_ignored.zig b/test/cases/compile_errors/while_loop_body_expression_ignored.zig @@ -27,8 +27,6 @@ export fn f5() void { } // error -// backend=stage2 -// target=native // // :5:25: error: value of type 'usize' ignored // :5:25: note: all non-void values must be used diff --git a/test/cases/compile_errors/while_loop_break_value_ignored.zig b/test/cases/compile_errors/while_loop_break_value_ignored.zig @@ -21,8 +21,6 @@ export fn f2() void { } // error -// backend=stage2 -// target=native // // :7:5: error: incompatible types: 'usize' and 'void' // :8:22: note: type 'usize' here diff --git a/test/cases/compile_errors/write_to_const_global_variable.zig b/test/cases/compile_errors/write_to_const_global_variable.zig @@ -7,7 +7,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/wrong_function_type.zig b/test/cases/compile_errors/wrong_function_type.zig @@ -13,8 +13,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :1:28: error: expected type 'fn () void', found 'fn () i32' // :1:28: note: return type 'i32' cannot cast into return type 'void' diff --git a/test/cases/compile_errors/wrong_number_of_arguments.zig b/test/cases/compile_errors/wrong_number_of_arguments.zig @@ -8,8 +8,6 @@ fn c(d: i32, e: i32, f: i32) void { } // error -// backend=stage2 -// target=native // // :2:5: error: expected 3 argument(s), found 1 // :4:1: note: function declared here diff --git a/test/cases/compile_errors/wrong_number_of_arguments_for_method_fn_call.zig b/test/cases/compile_errors/wrong_number_of_arguments_for_method_fn_call.zig @@ -12,8 +12,6 @@ export fn entry() usize { } // error -// backend=stage2 -// target=native // // :8:8: error: member function expected 1 argument(s), found 2 // :2:5: note: function declared here diff --git a/test/cases/compile_errors/wrong_pointer_coerced_to_pointer_to_opaque_{}.zig b/test/cases/compile_errors/wrong_pointer_coerced_to_pointer_to_opaque_{}.zig @@ -6,8 +6,6 @@ export fn foo() void { } // error -// backend=stage2 -// target=native // // :5:9: error: expected type '*tmp.Derp', found '*anyopaque' // :5:9: note: pointer type child 'anyopaque' cannot cast into pointer type child 'tmp.Derp' diff --git a/test/cases/compile_errors/wrong_size_to_an_array_literal.zig b/test/cases/compile_errors/wrong_size_to_an_array_literal.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // // :2:24: error: expected 2 array elements; found 3 diff --git a/test/cases/compile_errors/wrong_type_for_reify_type.zig b/test/cases/compile_errors/wrong_type_for_reify_type.zig @@ -3,8 +3,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :2:15: error: expected type 'builtin.Type', found 'comptime_int' // :?:?: note: union declared here diff --git a/test/cases/compile_errors/wrong_type_passed_to_panic.zig b/test/cases/compile_errors/wrong_type_passed_to_panic.zig @@ -4,7 +4,5 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:12: error: expected type '[]const u8', found 'error{Foo}' diff --git a/test/cases/compile_errors/wrong_type_to_hasField.zig b/test/cases/compile_errors/wrong_type_to_hasField.zig @@ -3,7 +3,5 @@ export fn entry() bool { } // error -// backend=stage2 -// target=native // // :2:22: error: type 'i32' does not support '@hasField' diff --git a/test/cases/compile_errors/wrong_types_given_to_atomic_order_args_in_cmpxchg.zig b/test/cases/compile_errors/wrong_types_given_to_atomic_order_args_in_cmpxchg.zig @@ -4,8 +4,6 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:47: error: expected type 'builtin.AtomicOrder', found 'u32' // :?:?: note: enum declared here diff --git a/test/cases/compile_errors/wrong_types_given_to_export.zig b/test/cases/compile_errors/wrong_types_given_to_export.zig @@ -4,8 +4,6 @@ comptime { } // error -// backend=stage2 -// target=native // // :3:42: error: expected type 'builtin.GlobalLinkage', found 'u32' // :?:?: note: enum declared here diff --git a/test/cases/compile_errors/zero-bit_generic_args_are_coerced_to_param_type.zig b/test/cases/compile_errors/zero-bit_generic_args_are_coerced_to_param_type.zig @@ -4,8 +4,6 @@ pub export fn entry() void { } // error -// backend=stage2 -// target=native // // :3:21: error: expected type 'u0', found '*const [4:0]u8' // :1:23: note: parameter type declared here diff --git a/test/cases/dereferencing_though_multiple_pointers_with_address_spaces.zig b/test/cases/dereferencing_though_multiple_pointers_with_address_spaces.zig @@ -0,0 +1,12 @@ +fn entry(a: *addrspace(.fs) *addrspace(.gs) *i32) *i32 { + return a.*.*; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/error_in_nested_declaration.zig b/test/cases/error_in_nested_declaration.zig @@ -23,8 +23,7 @@ pub export fn entry2() void { } // error -// backend=stage2,llvm -// target=native +// backend=selfhosted,llvm // // :6:20: error: cannot @bitCast to '[]i32' // :6:20: note: use @ptrCast to cast from '[]u32' diff --git a/test/cases/f32_passed_to_variadic_fn.zig b/test/cases/f32_passed_to_variadic_fn.zig @@ -7,7 +7,7 @@ pub fn main() void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux-gnu // link_libc=true // diff --git a/test/cases/llvm/f_segment_address_space_reading_and_writing.zig b/test/cases/f_segment_address_space_reading_and_writing.zig diff --git a/test/cases/float_mode_optimized_reduce.zig b/test/cases/float_mode_optimized_reduce.zig @@ -8,5 +8,5 @@ pub fn main() void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/fn_typeinfo_passed_to_comptime_fn.zig b/test/cases/fn_typeinfo_passed_to_comptime_fn.zig @@ -14,5 +14,5 @@ fn foo(comptime info: std.builtin.Type) !void { // run // is_test=true -// backend=stage2,llvm +// backend=selfhosted,llvm // diff --git a/test/cases/for_loop.zig b/test/cases/for_loop.zig @@ -0,0 +1,16 @@ +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +pub fn main() void { + var x: u32 = 0; + for ("hello") |_| { + x += 1; + } + assert("hello".len == x); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/hello_world.zig b/test/cases/hello_world.zig @@ -0,0 +1,13 @@ +extern fn puts(s: [*:0]const u8) c_int; + +pub fn main() void { + _ = puts("hello world!"); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// link_libc=true +// +// hello world! +// diff --git a/test/cases/large_add_function.zig b/test/cases/large_add_function.zig @@ -36,5 +36,5 @@ fn assert(ok: bool) void { // TODO: enable this for native backend // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=aarch64-linux,aarch64-macos diff --git a/test/cases/large_slices.zig b/test/cases/large_slices.zig @@ -0,0 +1,9 @@ +pub fn main() void { + const large_slice = @as([*]const u8, @ptrFromInt(1))[0..(0xffffffffffffffff >> 3)]; + _ = large_slice; +} + +// compile +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig b/test/cases/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig @@ -1,12 +0,0 @@ -fn entry(a: *addrspace(.gs) ?[1]i32) *addrspace(.gs) i32 { - return &a.*.?[0]; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/address_spaces_pointer_access_chaining_array_pointer.zig b/test/cases/llvm/address_spaces_pointer_access_chaining_array_pointer.zig @@ -1,12 +0,0 @@ -fn entry(a: *addrspace(.gs) [1]i32) *addrspace(.gs) i32 { - return &a[0]; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig b/test/cases/llvm/address_spaces_pointer_access_chaining_complex.zig @@ -1,13 +0,0 @@ -const A = struct { a: ?[1]i32 }; -fn entry(a: *addrspace(.gs) [1]A) *addrspace(.gs) i32 { - return &a[0].a.?[0]; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig b/test/cases/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig @@ -1,13 +0,0 @@ -const A = struct { a: i32 }; -fn entry(a: *addrspace(.gs) A) *addrspace(.gs) i32 { - return &a.a; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/blocks.zig b/test/cases/llvm/blocks.zig @@ -1,23 +0,0 @@ -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -fn foo(ok: bool) i32 { - const val: i32 = blk: { - var x: i32 = 1; - _ = &x; - if (!ok) break :blk x + 9; - break :blk x + 19; - }; - return val + 10; -} - -pub fn main() void { - assert(foo(false) == 20); - assert(foo(true) == 30); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig b/test/cases/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig @@ -1,12 +0,0 @@ -fn entry(a: *addrspace(.fs) *addrspace(.gs) *i32) *i32 { - return a.*.*; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/for_loop.zig b/test/cases/llvm/for_loop.zig @@ -1,16 +0,0 @@ -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -pub fn main() void { - var x: u32 = 0; - for ("hello") |_| { - x += 1; - } - assert("hello".len == x); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/hello_world.zig b/test/cases/llvm/hello_world.zig @@ -1,13 +0,0 @@ -extern fn puts(s: [*:0]const u8) c_int; - -pub fn main() void { - _ = puts("hello world!"); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// link_libc=true -// -// hello world! -// diff --git a/test/cases/llvm/large_slices.zig b/test/cases/llvm/large_slices.zig @@ -1,9 +0,0 @@ -pub fn main() void { - const large_slice = @as([*]const u8, @ptrFromInt(1))[0..(0xffffffffffffffff >> 3)]; - _ = large_slice; -} - -// compile -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/nested_blocks.zig b/test/cases/llvm/nested_blocks.zig @@ -1,24 +0,0 @@ -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -fn foo(ok: bool) i32 { - var val: i32 = blk: { - const val2: i32 = another: { - if (!ok) break :blk 10; - break :another 10; - }; - break :blk val2 + 10; - }; - return (&val).*; -} - -pub fn main() void { - assert(foo(false) == 10); - assert(foo(true) == 20); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/optionals.zig b/test/cases/llvm/optionals.zig @@ -1,49 +0,0 @@ -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -pub fn main() void { - var opt_val: ?i32 = 10; - var null_val: ?i32 = null; - - var val1: i32 = opt_val.?; - _ = &val1; - const val1_1: i32 = opt_val.?; - var ptr_val1 = &(opt_val.?); - _ = &ptr_val1; - const ptr_val1_1 = &(opt_val.?); - - var val2: i32 = null_val orelse 20; - const val2_2: i32 = null_val orelse 20; - - var value: i32 = 20; - var ptr_val2 = &(null_val orelse value); - _ = &ptr_val2; - - const val3 = opt_val orelse 30; - var val3_var = opt_val orelse 30; - _ = &val3_var; - - assert(val1 == 10); - assert(val1_1 == 10); - assert(ptr_val1.* == 10); - assert(ptr_val1_1.* == 10); - - assert(val2 == 20); - assert(val2_2 == 20); - assert(ptr_val2.* == 20); - - assert(val3 == 10); - assert(val3_var == 10); - - (null_val orelse val2) = 1234; - assert(val2 == 1234); - - (opt_val orelse val2) = 5678; - assert(opt_val.? == 5678); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/pointer_keeps_address_space.zig b/test/cases/llvm/pointer_keeps_address_space.zig @@ -1,12 +0,0 @@ -fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 { - return a; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig b/test/cases/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig @@ -1,12 +0,0 @@ -fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 { - return &a.*; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig b/test/cases/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig @@ -1,12 +0,0 @@ -fn entry(a: *addrspace(.generic) i32) *i32 { - return a; -} -pub fn main() void { - _ = &entry; -} - -// compile -// output_mode=Exe -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/rem.zig b/test/cases/llvm/rem.zig @@ -1,15 +0,0 @@ -fn assert(ok: bool) void { - if (!ok) unreachable; -} -fn rem(lhs: i32, rhs: i32, expected: i32) bool { - return @rem(lhs, rhs) == expected; -} -pub fn main() void { - assert(rem(-5, 3, -2)); - assert(rem(5, 3, 2)); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/simple_addition_and_subtraction.zig b/test/cases/llvm/simple_addition_and_subtraction.zig @@ -1,21 +0,0 @@ -fn add(a: i32, b: i32) i32 { - return a + b; -} - -pub fn main() void { - var a: i32 = -5; - _ = &a; - const x = add(a, 7); - var y = add(2, 0); - y -= x; - assert(y == 0); -} - -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/simple_if_statement.zig b/test/cases/llvm/simple_if_statement.zig @@ -1,16 +0,0 @@ -fn add(a: i32, b: i32) i32 { - return a + b; -} - -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -pub fn main() void { - assert(add(1, 2) == 3); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/llvm/while_loops.zig b/test/cases/llvm/while_loops.zig @@ -1,18 +0,0 @@ -fn assert(ok: bool) void { - if (!ok) unreachable; -} - -pub fn main() void { - var sum: u32 = 0; - var i: u32 = 0; - while (i < 5) : (i += 1) { - sum += i; - } - assert(sum == 10); - assert(i == 5); -} - -// run -// backend=stage2,llvm -// target=x86_64-linux,x86_64-macos -// diff --git a/test/cases/maximum_sized_integer_literal.zig b/test/cases/maximum_sized_integer_literal.zig @@ -18,5 +18,4 @@ pub fn main() !void { } // run -// backend=stage2,llvm -// target=native +// backend=selfhosted,llvm diff --git a/test/cases/nested_blocks.zig b/test/cases/nested_blocks.zig @@ -0,0 +1,24 @@ +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +fn foo(ok: bool) i32 { + var val: i32 = blk: { + const val2: i32 = another: { + if (!ok) break :blk 10; + break :another 10; + }; + break :blk val2 + 10; + }; + return (&val).*; +} + +pub fn main() void { + assert(foo(false) == 10); + assert(foo(true) == 20); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/optionals.zig b/test/cases/optionals.zig @@ -0,0 +1,49 @@ +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +pub fn main() void { + var opt_val: ?i32 = 10; + var null_val: ?i32 = null; + + var val1: i32 = opt_val.?; + _ = &val1; + const val1_1: i32 = opt_val.?; + var ptr_val1 = &(opt_val.?); + _ = &ptr_val1; + const ptr_val1_1 = &(opt_val.?); + + var val2: i32 = null_val orelse 20; + const val2_2: i32 = null_val orelse 20; + + var value: i32 = 20; + var ptr_val2 = &(null_val orelse value); + _ = &ptr_val2; + + const val3 = opt_val orelse 30; + var val3_var = opt_val orelse 30; + _ = &val3_var; + + assert(val1 == 10); + assert(val1_1 == 10); + assert(ptr_val1.* == 10); + assert(ptr_val1_1.* == 10); + + assert(val2 == 20); + assert(val2_2 == 20); + assert(ptr_val2.* == 20); + + assert(val3 == 10); + assert(val3_var == 10); + + (null_val orelse val2) = 1234; + assert(val2 == 1234); + + (opt_val orelse val2) = 5678; + assert(opt_val.? == 5678); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/pic_freestanding.zig b/test/cases/pic_freestanding.zig @@ -8,7 +8,7 @@ comptime { } // compile -// backend=stage2,llvm +// backend=selfhosted,llvm // target=arm-freestanding,armeb-freestanding,thumb-freestanding,thumbeb-freestanding,aarch64-freestanding,aarch64_be-freestanding,loongarch64-freestanding,mips-freestanding,mipsel-freestanding,mips64-freestanding,mips64el-freestanding,powerpc-freestanding,powerpcle-freestanding,powerpc64-freestanding,powerpc64le-freestanding,riscv32-freestanding,riscv64-freestanding,s390x-freestanding,x86-freestanding,x86_64-freestanding // pic=true // output_mode=Exe diff --git a/test/cases/pic_linux.zig b/test/cases/pic_linux.zig @@ -8,7 +8,7 @@ const std = @import("std"); pub fn main() void {} // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=arm-linux,armeb-linux,thumb-linux,thumbeb-linux,aarch64-linux,aarch64_be-linux,loongarch64-linux,mips-linux,mipsel-linux,mips64-linux,mips64el-linux,powerpc-linux,powerpc64-linux,powerpc64le-linux,riscv32-linux,riscv64-linux,s390x-linux,x86-linux,x86_64-linux // pic=true // link_libc=true diff --git a/test/cases/pointer_keeps_address_space.zig b/test/cases/pointer_keeps_address_space.zig @@ -0,0 +1,12 @@ +fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 { + return a; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/pointer_keeps_address_space_when_taking_address_of_dereference.zig b/test/cases/pointer_keeps_address_space_when_taking_address_of_dereference.zig @@ -0,0 +1,12 @@ +fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 { + return &a.*; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig b/test/cases/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig @@ -0,0 +1,12 @@ +fn entry(a: *addrspace(.generic) i32) *i32 { + return a; +} +pub fn main() void { + _ = &entry; +} + +// compile +// output_mode=Exe +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/rem.zig b/test/cases/rem.zig @@ -0,0 +1,15 @@ +fn assert(ok: bool) void { + if (!ok) unreachable; +} +fn rem(lhs: i32, rhs: i32, expected: i32) bool { + return @rem(lhs, rhs) == expected; +} +pub fn main() void { + assert(rem(-5, 3, -2)); + assert(rem(5, 3, 2)); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig b/test/cases/returning_undefined_sentinel_terminated_const_u8_slice.zig @@ -7,5 +7,4 @@ pub fn main() void { } // run -// backend=stage2,llvm -// target=native +// backend=selfhosted,llvm diff --git a/test/cases/safety/@alignCast misaligned.zig b/test/cases/safety/@alignCast misaligned.zig @@ -21,5 +21,5 @@ fn foo(bytes: []u8) u32 { return int_slice[0]; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@enumFromInt - no matching tag value.zig b/test/cases/safety/@enumFromInt - no matching tag value.zig @@ -22,5 +22,5 @@ fn bar(a: u2) Foo { fn baz(_: Foo) void {} // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@enumFromInt truncated bits - exhaustive.zig b/test/cases/safety/@enumFromInt truncated bits - exhaustive.zig @@ -19,5 +19,5 @@ pub fn main() u8 { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig b/test/cases/safety/@enumFromInt truncated bits - nonexhaustive.zig @@ -19,5 +19,5 @@ pub fn main() u8 { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@errorCast error not present in destination.zig b/test/cases/safety/@errorCast error not present in destination.zig @@ -17,5 +17,5 @@ fn foo(set1: Set1) Set2 { return @errorCast(set1); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@errorCast error union casted to disjoint set.zig b/test/cases/safety/@errorCast error union casted to disjoint set.zig @@ -16,5 +16,5 @@ fn foo() anyerror!i32 { return error.Bar; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intCast to u0.zig b/test/cases/safety/@intCast to u0.zig @@ -18,5 +18,5 @@ fn bar(one: u1, not_zero: i32) void { _ = x; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - i0 max.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - i0 max.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - i0 min.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - i0 min.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - signed max.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - signed max.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - signed min.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - signed min.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - u0 max.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - u0 max.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - u0 min.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - u0 min.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - unsigned max.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - unsigned max.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - unsigned min.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - unsigned min.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - vector max.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - vector max.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - boundary case - vector min.zig b/test/cases/safety/@intFromFloat cannot fit - boundary case - vector min.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - negative out of range.zig b/test/cases/safety/@intFromFloat cannot fit - negative out of range.zig @@ -16,5 +16,5 @@ fn bar(a: f32) i8 { } fn baz(_: i8) void {} // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig b/test/cases/safety/@intFromFloat cannot fit - negative to unsigned.zig @@ -16,5 +16,5 @@ fn bar(a: f32) u8 { } fn baz(_: u8) void {} // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@intFromFloat cannot fit - positive out of range.zig b/test/cases/safety/@intFromFloat cannot fit - positive out of range.zig @@ -16,5 +16,5 @@ fn bar(a: f32) u8 { } fn baz(_: u8) void {} // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig b/test/cases/safety/@ptrFromInt address zero to non-optional byte-aligned pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig b/test/cases/safety/@ptrFromInt address zero to non-optional pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@ptrFromInt with misaligned address.zig b/test/cases/safety/@ptrFromInt with misaligned address.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/@tagName on corrupted enum value.zig b/test/cases/safety/@tagName on corrupted enum value.zig @@ -22,5 +22,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/@tagName on corrupted union value.zig b/test/cases/safety/@tagName on corrupted union value.zig @@ -23,5 +23,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/array slice sentinel mismatch vector.zig b/test/cases/safety/array slice sentinel mismatch vector.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/array slice sentinel mismatch.zig b/test/cases/safety/array slice sentinel mismatch.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/bad union field access.zig b/test/cases/safety/bad union field access.zig @@ -23,5 +23,5 @@ fn bar(f: *Foo) void { f.float = 12.34; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/calling panic.zig b/test/cases/safety/calling panic.zig @@ -12,5 +12,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/cast []u8 to bigger slice of wrong size.zig b/test/cases/safety/cast []u8 to bigger slice of wrong size.zig @@ -17,5 +17,5 @@ fn widenSlice(slice: []align(1) const u8) []align(1) const i32 { return std.mem.bytesAsSlice(i32, slice); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/cast integer to global error and no code matches.zig b/test/cases/safety/cast integer to global error and no code matches.zig @@ -15,5 +15,5 @@ fn bar(x: u16) anyerror { return @errorFromInt(x); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/empty slice with sentinel out of bounds.zig b/test/cases/safety/empty slice with sentinel out of bounds.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/exact division failure - vectors.zig b/test/cases/safety/exact division failure - vectors.zig @@ -19,5 +19,5 @@ fn divExact(a: @Vector(4, i32), b: @Vector(4, i32)) @Vector(4, i32) { return @divExact(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/exact division failure.zig b/test/cases/safety/exact division failure.zig @@ -17,5 +17,5 @@ fn divExact(a: i32, b: i32) i32 { return @divExact(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/for_len_mismatch.zig b/test/cases/safety/for_len_mismatch.zig @@ -21,5 +21,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/for_len_mismatch_three.zig b/test/cases/safety/for_len_mismatch_three.zig @@ -20,5 +20,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/ignored expression integer overflow.zig b/test/cases/safety/ignored expression integer overflow.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/integer addition overflow.zig b/test/cases/safety/integer addition overflow.zig @@ -19,5 +19,5 @@ fn add(a: u16, b: u16) u16 { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/integer division by zero - vectors.zig b/test/cases/safety/integer division by zero - vectors.zig @@ -18,5 +18,5 @@ fn div0(a: @Vector(4, i32), b: @Vector(4, i32)) @Vector(4, i32) { return @divTrunc(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/integer division by zero.zig b/test/cases/safety/integer division by zero.zig @@ -16,5 +16,5 @@ fn div0(a: i32, b: i32) i32 { return @divTrunc(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/integer multiplication overflow.zig b/test/cases/safety/integer multiplication overflow.zig @@ -17,5 +17,5 @@ fn mul(a: u16, b: u16) u16 { return a * b; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/integer negation overflow.zig b/test/cases/safety/integer negation overflow.zig @@ -17,5 +17,5 @@ fn neg(a: i16) i16 { return -a; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/integer subtraction overflow.zig b/test/cases/safety/integer subtraction overflow.zig @@ -17,5 +17,5 @@ fn sub(a: u16, b: u16) u16 { return a - b; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memcpy_alias.zig b/test/cases/safety/memcpy_alias.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memcpy_len_mismatch.zig b/test/cases/safety/memcpy_len_mismatch.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memmove_len_mismatch.zig b/test/cases/safety/memmove_len_mismatch.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memset_array_undefined_bytes.zig b/test/cases/safety/memset_array_undefined_bytes.zig @@ -14,5 +14,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memset_array_undefined_large.zig b/test/cases/safety/memset_array_undefined_large.zig @@ -14,5 +14,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memset_slice_undefined_bytes.zig b/test/cases/safety/memset_slice_undefined_bytes.zig @@ -16,5 +16,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/memset_slice_undefined_large.zig b/test/cases/safety/memset_slice_undefined_large.zig @@ -16,5 +16,5 @@ pub fn main() !void { x += buffer[2]; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/modrem by zero.zig b/test/cases/safety/modrem by zero.zig @@ -16,5 +16,5 @@ fn div0(a: u32, b: u32) u32 { return a / b; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/modulus by zero.zig b/test/cases/safety/modulus by zero.zig @@ -16,5 +16,5 @@ fn mod0(a: i32, b: i32) i32 { return @mod(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/noreturn returned.zig b/test/cases/safety/noreturn returned.zig @@ -19,5 +19,5 @@ pub fn main() void { bar(); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/optional unwrap operator on C pointer.zig b/test/cases/safety/optional unwrap operator on C pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/optional unwrap operator on null pointer.zig b/test/cases/safety/optional unwrap operator on null pointer.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/optional_empty_error_set.zig b/test/cases/safety/optional_empty_error_set.zig @@ -18,5 +18,5 @@ fn foo() !void { return x.?; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/out of bounds array slice by length.zig b/test/cases/safety/out of bounds array slice by length.zig @@ -16,5 +16,5 @@ fn foo(a: u32) u32 { return a; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/out of bounds slice access.zig b/test/cases/safety/out of bounds slice access.zig @@ -17,5 +17,5 @@ fn bar(a: []const i32) i32 { } fn baz(_: i32) void {} // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/pointer casting null to non-optional pointer.zig b/test/cases/safety/pointer casting null to non-optional pointer.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/pointer casting to null function pointer.zig b/test/cases/safety/pointer casting to null function pointer.zig @@ -19,5 +19,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/pointer slice sentinel mismatch.zig b/test/cases/safety/pointer slice sentinel mismatch.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/remainder division by zero.zig b/test/cases/safety/remainder division by zero.zig @@ -16,5 +16,5 @@ fn rem0(a: i32, b: i32) i32 { return @rem(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/shift left by huge amount.zig b/test/cases/safety/shift left by huge amount.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/shift right by huge amount.zig b/test/cases/safety/shift right by huge amount.zig @@ -18,5 +18,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/signed integer division overflow - vectors.zig b/test/cases/safety/signed integer division overflow - vectors.zig @@ -19,5 +19,5 @@ fn div(a: @Vector(4, i16), b: @Vector(4, i16)) @Vector(4, i16) { return @divTrunc(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/signed integer division overflow.zig b/test/cases/safety/signed integer division overflow.zig @@ -17,5 +17,5 @@ fn div(a: i16, b: i16) i16 { return @divTrunc(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig b/test/cases/safety/signed integer not fitting in cast to unsigned integer - widening.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/signed integer not fitting in cast to unsigned integer.zig b/test/cases/safety/signed integer not fitting in cast to unsigned integer.zig @@ -16,5 +16,5 @@ fn unsigned_cast(x: i32) u32 { return @intCast(x); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/signed shift left overflow.zig b/test/cases/safety/signed shift left overflow.zig @@ -17,5 +17,5 @@ fn shl(a: i16, b: u4) i16 { return @shlExact(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/signed shift right overflow.zig b/test/cases/safety/signed shift right overflow.zig @@ -17,5 +17,5 @@ fn shr(a: i16, b: u4) i16 { return @shrExact(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/signed-unsigned vector cast.zig b/test/cases/safety/signed-unsigned vector cast.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/slice by length sentinel mismatch on lhs.zig b/test/cases/safety/slice by length sentinel mismatch on lhs.zig @@ -14,5 +14,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice by length sentinel mismatch on rhs.zig b/test/cases/safety/slice by length sentinel mismatch on rhs.zig @@ -14,5 +14,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice sentinel mismatch - floats.zig b/test/cases/safety/slice sentinel mismatch - floats.zig @@ -16,5 +16,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/slice sentinel mismatch - optional pointers.zig b/test/cases/safety/slice sentinel mismatch - optional pointers.zig @@ -16,5 +16,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice slice sentinel mismatch.zig b/test/cases/safety/slice slice sentinel mismatch.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice start index greater than end index.zig b/test/cases/safety/slice start index greater than end index.zig @@ -20,5 +20,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice with sentinel out of bounds - runtime len.zig b/test/cases/safety/slice with sentinel out of bounds - runtime len.zig @@ -19,5 +19,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice with sentinel out of bounds.zig b/test/cases/safety/slice with sentinel out of bounds.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice_cast_change_len_0.zig b/test/cases/safety/slice_cast_change_len_0.zig @@ -23,5 +23,5 @@ pub fn panic(message: []const u8, _: ?*std.builtin.StackTrace, _: ?usize) noretu const std = @import("std"); // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice_cast_change_len_1.zig b/test/cases/safety/slice_cast_change_len_1.zig @@ -23,5 +23,5 @@ pub fn panic(message: []const u8, _: ?*std.builtin.StackTrace, _: ?usize) noretu const std = @import("std"); // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slice_cast_change_len_2.zig b/test/cases/safety/slice_cast_change_len_2.zig @@ -23,5 +23,5 @@ pub fn panic(message: []const u8, _: ?*std.builtin.StackTrace, _: ?usize) noretu const std = @import("std"); // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slicing null C pointer - runtime len.zig b/test/cases/safety/slicing null C pointer - runtime len.zig @@ -17,5 +17,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/slicing null C pointer.zig b/test/cases/safety/slicing null C pointer.zig @@ -16,5 +16,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/switch else on corrupt enum value - one prong.zig b/test/cases/safety/switch else on corrupt enum value - one prong.zig @@ -20,5 +20,5 @@ pub fn main() !void { } } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/switch else on corrupt enum value - union.zig b/test/cases/safety/switch else on corrupt enum value - union.zig @@ -25,5 +25,5 @@ pub fn main() !void { } } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/switch else on corrupt enum value.zig b/test/cases/safety/switch else on corrupt enum value.zig @@ -19,5 +19,5 @@ pub fn main() !void { } } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/switch on corrupted enum value.zig b/test/cases/safety/switch on corrupted enum value.zig @@ -23,5 +23,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/switch on corrupted union value.zig b/test/cases/safety/switch on corrupted union value.zig @@ -23,5 +23,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/truncating vector cast.zig b/test/cases/safety/truncating vector cast.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/unreachable.zig b/test/cases/safety/unreachable.zig @@ -11,5 +11,5 @@ pub fn main() !void { unreachable; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig b/test/cases/safety/unsigned integer not fitting in cast to signed integer - same bit count.zig @@ -15,5 +15,5 @@ pub fn main() !void { return error.TestFailed; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/unsigned shift left overflow.zig b/test/cases/safety/unsigned shift left overflow.zig @@ -17,5 +17,5 @@ fn shl(a: u16, b: u4) u16 { return @shlExact(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/unsigned shift right overflow.zig b/test/cases/safety/unsigned shift right overflow.zig @@ -17,5 +17,5 @@ fn shr(a: u16, b: u4) u16 { return @shrExact(a, b); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/unsigned-signed vector cast.zig b/test/cases/safety/unsigned-signed vector cast.zig @@ -17,5 +17,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/unwrap error switch.zig b/test/cases/safety/unwrap error switch.zig @@ -17,5 +17,5 @@ fn bar() !void { return error.Whatever; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/unwrap error.zig b/test/cases/safety/unwrap error.zig @@ -15,5 +15,5 @@ fn bar() !void { return error.Whatever; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/value does not fit in shortening cast - u0.zig b/test/cases/safety/value does not fit in shortening cast - u0.zig @@ -17,5 +17,5 @@ fn shorten_cast(x: u8) u0 { return @intCast(x); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/value does not fit in shortening cast.zig b/test/cases/safety/value does not fit in shortening cast.zig @@ -17,5 +17,5 @@ fn shorten_cast(x: i32) i8 { return @intCast(x); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/safety/vector integer addition overflow.zig b/test/cases/safety/vector integer addition overflow.zig @@ -18,5 +18,5 @@ fn add(a: @Vector(4, i32), b: @Vector(4, i32)) @Vector(4, i32) { return a + b; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/vector integer multiplication overflow.zig b/test/cases/safety/vector integer multiplication overflow.zig @@ -18,5 +18,5 @@ fn mul(a: @Vector(4, u8), b: @Vector(4, u8)) @Vector(4, u8) { return a * b; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/vector integer negation overflow.zig b/test/cases/safety/vector integer negation overflow.zig @@ -18,5 +18,5 @@ fn neg(a: @Vector(4, i16)) @Vector(4, i16) { return -a; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/vector integer subtraction overflow.zig b/test/cases/safety/vector integer subtraction overflow.zig @@ -18,5 +18,5 @@ fn sub(a: @Vector(4, u32), b: @Vector(4, u32)) @Vector(4, u32) { return a - b; } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/safety/zero casted to error.zig b/test/cases/safety/zero casted to error.zig @@ -15,5 +15,5 @@ fn bar(x: u16) anyerror { return @errorFromInt(x); } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux,aarch64-linux diff --git a/test/cases/simple_addition_and_subtraction.zig b/test/cases/simple_addition_and_subtraction.zig @@ -0,0 +1,21 @@ +fn add(a: i32, b: i32) i32 { + return a + b; +} + +pub fn main() void { + var a: i32 = -5; + _ = &a; + const x = add(a, 7); + var y = add(2, 0); + y -= x; + assert(y == 0); +} + +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/simple_if_statement.zig b/test/cases/simple_if_statement.zig @@ -0,0 +1,16 @@ +fn add(a: i32, b: i32) i32 { + return a + b; +} + +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +pub fn main() void { + assert(add(1, 2) == 3); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/cases/spirv_mergable_pointers.zig b/test/cases/spirv_mergable_pointers.zig @@ -12,6 +12,6 @@ export fn a() void { // compile // output_mode=Obj -// backend=stage2 +// backend=selfhosted // target=spirv64-vulkan // emit_bin=false diff --git a/test/cases/taking_pointer_of_global_tagged_union.zig b/test/cases/taking_pointer_of_global_tagged_union.zig @@ -22,5 +22,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // target=x86_64-linux diff --git a/test/cases/union_unresolved_layout.zig b/test/cases/union_unresolved_layout.zig @@ -11,5 +11,5 @@ pub fn main() !void { } // run -// backend=stage2,llvm +// backend=selfhosted,llvm // diff --git a/test/cases/while_loops.zig b/test/cases/while_loops.zig @@ -0,0 +1,18 @@ +fn assert(ok: bool) void { + if (!ok) unreachable; +} + +pub fn main() void { + var sum: u32 = 0; + var i: u32 = 0; + while (i < 5) : (i += 1) { + sum += i; + } + assert(sum == 10); + assert(i == 5); +} + +// run +// backend=selfhosted,llvm +// target=x86_64-linux,x86_64-macos +// diff --git a/test/compare_output.zig b/test/compare_output.zig @@ -1,221 +0,0 @@ -const std = @import("std"); -const os = std.os; -const tests = @import("tests.zig"); - -pub fn addCases(cases: *tests.CompareOutputContext) void { - cases.addC("hello world with libc", - \\const c = @cImport({ - \\ // See https://github.com/ziglang/zig/issues/515 - \\ @cDefine("_NO_CRT_STDIO_INLINE", "1"); - \\ @cInclude("stdio.h"); - \\}); - \\pub export fn main(argc: c_int, argv: [*][*]u8) c_int { - \\ _ = argc; - \\ _ = argv; - \\ _ = c.puts("Hello, world!"); - \\ return 0; - \\} - , "Hello, world!" ++ if (@import("builtin").os.tag == .windows) "\r\n" else "\n"); - - cases.addC("number literals", - \\const std = @import("std"); - \\const builtin = @import("builtin"); - \\const is_windows = builtin.os.tag == .windows; - \\const c = @cImport({ - \\ if (is_windows) { - \\ // See https://github.com/ziglang/zig/issues/515 - \\ @cDefine("_NO_CRT_STDIO_INLINE", "1"); - \\ @cInclude("io.h"); - \\ @cInclude("fcntl.h"); - \\ } - \\ @cInclude("stdio.h"); - \\}); - \\ - \\pub export fn main(argc: c_int, argv: [*][*]u8) c_int { - \\ _ = argc; - \\ _ = argv; - \\ if (is_windows) { - \\ // we want actual \n, not \r\n - \\ _ = c._setmode(1, c._O_BINARY); - \\ } - \\ _ = c.printf("0: %llu\n", - \\ @as(u64, 0)); - \\ _ = c.printf("320402575052271: %llu\n", - \\ @as(u64, 320402575052271)); - \\ _ = c.printf("0x01236789abcdef: %llu\n", - \\ @as(u64, 0x01236789abcdef)); - \\ _ = c.printf("0xffffffffffffffff: %llu\n", - \\ @as(u64, 0xffffffffffffffff)); - \\ _ = c.printf("0x000000ffffffffffffffff: %llu\n", - \\ @as(u64, 0x000000ffffffffffffffff)); - \\ _ = c.printf("0o1777777777777777777777: %llu\n", - \\ @as(u64, 0o1777777777777777777777)); - \\ _ = c.printf("0o0000001777777777777777777777: %llu\n", - \\ @as(u64, 0o0000001777777777777777777777)); - \\ _ = c.printf("0b1111111111111111111111111111111111111111111111111111111111111111: %llu\n", - \\ @as(u64, 0b1111111111111111111111111111111111111111111111111111111111111111)); - \\ _ = c.printf("0b0000001111111111111111111111111111111111111111111111111111111111111111: %llu\n", - \\ @as(u64, 0b0000001111111111111111111111111111111111111111111111111111111111111111)); - \\ - \\ _ = c.printf("\n"); - \\ - \\ _ = c.printf("0.0: %.013a\n", - \\ @as(f64, 0.0)); - \\ _ = c.printf("0e0: %.013a\n", - \\ @as(f64, 0e0)); - \\ _ = c.printf("0.0e0: %.013a\n", - \\ @as(f64, 0.0e0)); - \\ _ = c.printf("000000000000000000000000000000000000000000000000000000000.0e0: %.013a\n", - \\ @as(f64, 0.0e0)); - \\ _ = c.printf("0.000000000000000000000000000000000000000000000000000000000e0: %.013a\n", - \\ @as(f64, 0.000000000000000000000000000000000000000000000000000000000e0)); - \\ _ = c.printf("0.0e000000000000000000000000000000000000000000000000000000000: %.013a\n", - \\ @as(f64, 0.0e000000000000000000000000000000000000000000000000000000000)); - \\ _ = c.printf("1.0: %.013a\n", - \\ @as(f64, 1.0)); - \\ _ = c.printf("10.0: %.013a\n", - \\ @as(f64, 10.0)); - \\ _ = c.printf("10.5: %.013a\n", - \\ @as(f64, 10.5)); - \\ _ = c.printf("10.5e5: %.013a\n", - \\ @as(f64, 10.5e5)); - \\ _ = c.printf("10.5e+5: %.013a\n", - \\ @as(f64, 10.5e+5)); - \\ _ = c.printf("50.0e-2: %.013a\n", - \\ @as(f64, 50.0e-2)); - \\ _ = c.printf("50e-2: %.013a\n", - \\ @as(f64, 50e-2)); - \\ - \\ _ = c.printf("\n"); - \\ - \\ _ = c.printf("0x1.0: %.013a\n", - \\ @as(f64, 0x1.0)); - \\ _ = c.printf("0x10.0: %.013a\n", - \\ @as(f64, 0x10.0)); - \\ _ = c.printf("0x100.0: %.013a\n", - \\ @as(f64, 0x100.0)); - \\ _ = c.printf("0x103.0: %.013a\n", - \\ @as(f64, 0x103.0)); - \\ _ = c.printf("0x103.7: %.013a\n", - \\ @as(f64, 0x103.7)); - \\ _ = c.printf("0x103.70: %.013a\n", - \\ @as(f64, 0x103.70)); - \\ _ = c.printf("0x103.70p4: %.013a\n", - \\ @as(f64, 0x103.70p4)); - \\ _ = c.printf("0x103.70p5: %.013a\n", - \\ @as(f64, 0x103.70p5)); - \\ _ = c.printf("0x103.70p+5: %.013a\n", - \\ @as(f64, 0x103.70p+5)); - \\ _ = c.printf("0x103.70p-5: %.013a\n", - \\ @as(f64, 0x103.70p-5)); - \\ - \\ return 0; - \\} - , - \\0: 0 - \\320402575052271: 320402575052271 - \\0x01236789abcdef: 320402575052271 - \\0xffffffffffffffff: 18446744073709551615 - \\0x000000ffffffffffffffff: 18446744073709551615 - \\0o1777777777777777777777: 18446744073709551615 - \\0o0000001777777777777777777777: 18446744073709551615 - \\0b1111111111111111111111111111111111111111111111111111111111111111: 18446744073709551615 - \\0b0000001111111111111111111111111111111111111111111111111111111111111111: 18446744073709551615 - \\ - \\0.0: 0x0.0000000000000p+0 - \\0e0: 0x0.0000000000000p+0 - \\0.0e0: 0x0.0000000000000p+0 - \\000000000000000000000000000000000000000000000000000000000.0e0: 0x0.0000000000000p+0 - \\0.000000000000000000000000000000000000000000000000000000000e0: 0x0.0000000000000p+0 - \\0.0e000000000000000000000000000000000000000000000000000000000: 0x0.0000000000000p+0 - \\1.0: 0x1.0000000000000p+0 - \\10.0: 0x1.4000000000000p+3 - \\10.5: 0x1.5000000000000p+3 - \\10.5e5: 0x1.0059000000000p+20 - \\10.5e+5: 0x1.0059000000000p+20 - \\50.0e-2: 0x1.0000000000000p-1 - \\50e-2: 0x1.0000000000000p-1 - \\ - \\0x1.0: 0x1.0000000000000p+0 - \\0x10.0: 0x1.0000000000000p+4 - \\0x100.0: 0x1.0000000000000p+8 - \\0x103.0: 0x1.0300000000000p+8 - \\0x103.7: 0x1.0370000000000p+8 - \\0x103.70: 0x1.0370000000000p+8 - \\0x103.70p4: 0x1.0370000000000p+12 - \\0x103.70p5: 0x1.0370000000000p+13 - \\0x103.70p+5: 0x1.0370000000000p+13 - \\0x103.70p-5: 0x1.0370000000000p+3 - \\ - ); - - cases.addC("expose function pointer to C land", - \\const c = @cImport(@cInclude("stdlib.h")); - \\ - \\export fn compare_fn(a: ?*const anyopaque, b: ?*const anyopaque) c_int { - \\ const a_int: *const i32 = @ptrCast(@alignCast(a)); - \\ const b_int: *const i32 = @ptrCast(@alignCast(b)); - \\ if (a_int.* < b_int.*) { - \\ return -1; - \\ } else if (a_int.* > b_int.*) { - \\ return 1; - \\ } else { - \\ return 0; - \\ } - \\} - \\ - \\pub export fn main() c_int { - \\ var array = [_]u32{ 1, 7, 3, 2, 0, 9, 4, 8, 6, 5 }; - \\ - \\ c.qsort(@ptrCast(&array), @intCast(array.len), @sizeOf(i32), compare_fn); - \\ - \\ for (array, 0..) |item, i| { - \\ if (item != i) { - \\ c.abort(); - \\ } - \\ } - \\ - \\ return 0; - \\} - , ""); - - cases.addC("casting between float and integer types", - \\const std = @import("std"); - \\const builtin = @import("builtin"); - \\const is_windows = builtin.os.tag == .windows; - \\const c = @cImport({ - \\ if (is_windows) { - \\ // See https://github.com/ziglang/zig/issues/515 - \\ @cDefine("_NO_CRT_STDIO_INLINE", "1"); - \\ @cInclude("io.h"); - \\ @cInclude("fcntl.h"); - \\ } - \\ @cInclude("stdio.h"); - \\}); - \\ - \\pub export fn main(argc: c_int, argv: [*][*]u8) c_int { - \\ _ = argc; - \\ _ = argv; - \\ if (is_windows) { - \\ // we want actual \n, not \r\n - \\ _ = c._setmode(1, c._O_BINARY); - \\ } - \\ const small: f32 = 3.25; - \\ const x: f64 = small; - \\ const y: i32 = @intFromFloat(x); - \\ const z: f64 = @floatFromInt(y); - \\ _ = c.printf("%.2f\n%d\n%.2f\n%.2f\n", x, y, z, @as(f64, -0.4)); - \\ return 0; - \\} - , "3.25\n3\n3.00\n-0.40\n"); - - cases.add("valid carriage return example", "const std = @import(\"std\");\r\n" ++ // Testing CRLF line endings are valid - "\r\n" ++ - "pub \r fn main() void {\r\n" ++ // Testing isolated carriage return as whitespace is valid - " var file_writer = std.fs.File.stdout().writerStreaming(&.{});\r\n" ++ - " const stdout = &file_writer.interface;\r\n" ++ - " stdout.print(\\\\A Multiline\r\n" ++ // testing CRLF at end of multiline string line is valid and normalises to \n in the output - " \\\\String\r\n" ++ - " , .{}) catch unreachable;\r\n" ++ - "}\r\n", "A Multiline\nString"); -} diff --git a/test/link/build.zig.zon b/test/link/build.zig.zon @@ -15,9 +15,6 @@ .static_libs_from_object_files = .{ .path = "static_libs_from_object_files", }, - .glibc_compat = .{ - .path = "glibc_compat", - }, // WASM Cases .wasm_archive = .{ .path = "wasm/archive", diff --git a/test/link/interdependent_static_c_libs/main.zig b/test/link/interdependent_static_c_libs/main.zig @@ -1,8 +1,9 @@ const std = @import("std"); const expect = std.testing.expect; -const c = @cImport(@cInclude("b.h")); + +extern fn sub(a: i32, b: i32) i32; test "import C sub" { - const result = c.sub(2, 1); + const result = sub(2, 1); try expect(result == 1); } diff --git a/test/src/Cases.zig b/test/src/Cases.zig @@ -26,8 +26,9 @@ pub const DepModule = struct { }; pub const Backend = enum { - stage1, - stage2, + /// Test does not care which backend is used; compiler gets to pick the default. + auto, + selfhosted, llvm, }; @@ -75,7 +76,7 @@ pub const Case = struct { emit_h: bool = false, is_test: bool = false, expect_exact: bool = false, - backend: Backend = .stage2, + backend: Backend = .auto, link_libc: bool = false, pic: ?bool = null, pie: ?bool = null, @@ -271,26 +272,6 @@ pub fn addC(ctx: *Cases, name: []const u8, target: std.Build.ResolvedTarget) *Ca return &ctx.cases.items[ctx.cases.items.len - 1]; } -pub fn addCompareOutput( - ctx: *Cases, - name: []const u8, - src: [:0]const u8, - expected_stdout: []const u8, -) void { - ctx.addExe(name, .{}).addCompareOutput(src, expected_stdout); -} - -/// Adds a test case that compiles the Zig source given in `src`, executes -/// it, runs it, and tests the output against `expected_stdout` -pub fn compareOutput( - ctx: *Cases, - name: []const u8, - src: [:0]const u8, - expected_stdout: []const u8, -) void { - return ctx.addCompareOutput(name, src, expected_stdout); -} - pub fn addTransform( ctx: *Cases, name: []const u8, @@ -443,13 +424,13 @@ fn addFromDirInner( const resolved_target = b.resolveTargetQuery(target_query); const target = &resolved_target.result; for (backends) |backend| { - if (backend == .stage2 and + if (backend == .selfhosted and target.cpu.arch != .aarch64 and target.cpu.arch != .wasm32 and target.cpu.arch != .x86_64 and target.cpu.arch != .spirv64) { // Other backends don't support new liveness format continue; } - if (backend == .stage2 and target.os.tag == .macos and + if (backend == .selfhosted and target.os.tag == .macos and target.cpu.arch == .x86_64 and builtin.cpu.arch == .aarch64) { // Rosetta has issues with ZLD @@ -638,7 +619,15 @@ pub fn lowerToBuildSteps( if (options.skip_macos and case.target.query.os_tag == .macos) continue; if (options.skip_linux and case.target.query.os_tag == .linux) continue; - const would_use_llvm = @import("../tests.zig").wouldUseLlvm(case.backend == .llvm, case.target.query, case.optimize_mode); + const would_use_llvm = @import("../tests.zig").wouldUseLlvm( + switch (case.backend) { + .auto => null, + .selfhosted => false, + .llvm => true, + }, + case.target.query, + case.optimize_mode, + ); if (options.skip_llvm and would_use_llvm) continue; const triple_txt = case.target.query.zigTriple(b.allocator) catch @panic("OOM"); @@ -707,8 +696,8 @@ pub fn lowerToBuildSteps( if (case.pie) |pie| artifact.pie = pie; switch (case.backend) { - .stage1 => continue, - .stage2 => { + .auto => {}, + .selfhosted => { artifact.use_llvm = false; artifact.use_lld = false; }, @@ -787,7 +776,7 @@ const TestManifestConfigDefaults = struct { /// Asserts if the key doesn't exist - yep, it's an oversight alright. fn get(@"type": TestManifest.Type, key: []const u8) []const u8 { if (std.mem.eql(u8, key, "backend")) { - return "stage2"; + return "auto"; } else if (std.mem.eql(u8, key, "target")) { if (@"type" == .@"error" or @"type" == .translate_c or @"type" == .run_translated_c) { return "native"; @@ -844,7 +833,7 @@ const TestManifestConfigDefaults = struct { /// (see https://github.com/ziglang/zig/issues/11288) /// /// error -/// backend=stage1,stage2 +/// backend=selfhosted,llvm /// output_mode=exe /// /// :3:19: error: foo diff --git a/test/src/CompareOutput.zig b/test/src/CompareOutput.zig @@ -1,175 +0,0 @@ -//! This is the implementation of the test harness. -//! For the actual test cases, see test/compare_output.zig. - -b: *std.Build, -step: *std.Build.Step, -test_index: usize, -test_filters: []const []const u8, -optimize_modes: []const OptimizeMode, - -const Special = enum { - None, - Asm, - RuntimeSafety, -}; - -const TestCase = struct { - name: []const u8, - sources: std.array_list.Managed(SourceFile), - expected_output: []const u8, - link_libc: bool, - special: Special, - cli_args: []const []const u8, - - const SourceFile = struct { - filename: []const u8, - source: []const u8, - }; - - pub fn addSourceFile(self: *TestCase, filename: []const u8, source: []const u8) void { - self.sources.append(SourceFile{ - .filename = filename, - .source = source, - }) catch @panic("OOM"); - } - - pub fn setCommandLineArgs(self: *TestCase, args: []const []const u8) void { - self.cli_args = args; - } -}; - -pub fn createExtra(self: *CompareOutput, name: []const u8, source: []const u8, expected_output: []const u8, special: Special) TestCase { - var tc = TestCase{ - .name = name, - .sources = std.array_list.Managed(TestCase.SourceFile).init(self.b.allocator), - .expected_output = expected_output, - .link_libc = false, - .special = special, - .cli_args = &[_][]const u8{}, - }; - const root_src_name = if (special == Special.Asm) "source.s" else "source.zig"; - tc.addSourceFile(root_src_name, source); - return tc; -} - -pub fn create(self: *CompareOutput, name: []const u8, source: []const u8, expected_output: []const u8) TestCase { - return createExtra(self, name, source, expected_output, Special.None); -} - -pub fn addC(self: *CompareOutput, name: []const u8, source: []const u8, expected_output: []const u8) void { - var tc = self.create(name, source, expected_output); - tc.link_libc = true; - self.addCase(tc); -} - -pub fn add(self: *CompareOutput, name: []const u8, source: []const u8, expected_output: []const u8) void { - const tc = self.create(name, source, expected_output); - self.addCase(tc); -} - -pub fn addAsm(self: *CompareOutput, name: []const u8, source: []const u8, expected_output: []const u8) void { - const tc = self.createExtra(name, source, expected_output, Special.Asm); - self.addCase(tc); -} - -pub fn addRuntimeSafety(self: *CompareOutput, name: []const u8, source: []const u8) void { - const tc = self.createExtra(name, source, undefined, Special.RuntimeSafety); - self.addCase(tc); -} - -pub fn addCase(self: *CompareOutput, case: TestCase) void { - const b = self.b; - - const write_src = b.addWriteFiles(); - const first_src = case.sources.items[0]; - const first_file = write_src.add(first_src.filename, first_src.source); - for (case.sources.items[1..]) |src_file| { - _ = write_src.add(src_file.filename, src_file.source); - } - - switch (case.special) { - Special.Asm => { - const annotated_case_name = b.fmt("run assemble-and-link {s}", .{ - case.name, - }); - for (self.test_filters) |test_filter| { - if (mem.indexOf(u8, annotated_case_name, test_filter)) |_| break; - } else if (self.test_filters.len > 0) return; - - const exe = b.addExecutable(.{ - .name = "test", - .root_module = b.createModule(.{ - .root_source_file = null, - .target = b.graph.host, - .optimize = .Debug, - }), - }); - exe.root_module.addAssemblyFile(first_file); - - const run = b.addRunArtifact(exe); - run.setName(annotated_case_name); - run.addArgs(case.cli_args); - run.expectStdOutEqual(case.expected_output); - - self.step.dependOn(&run.step); - }, - Special.None => { - for (self.optimize_modes) |optimize| { - const annotated_case_name = b.fmt("run compare-output {s} ({s})", .{ - case.name, @tagName(optimize), - }); - for (self.test_filters) |test_filter| { - if (mem.indexOf(u8, annotated_case_name, test_filter)) |_| break; - } else if (self.test_filters.len > 0) return; - - const exe = b.addExecutable(.{ - .name = "test", - .root_module = b.createModule(.{ - .root_source_file = first_file, - .optimize = optimize, - .target = b.graph.host, - }), - }); - if (case.link_libc) exe.root_module.link_libc = true; - - const run = b.addRunArtifact(exe); - run.setName(annotated_case_name); - run.addArgs(case.cli_args); - run.expectStdOutEqual(case.expected_output); - - self.step.dependOn(&run.step); - } - }, - Special.RuntimeSafety => { - // TODO iterate over self.optimize_modes and test this in both - // debug and release safe mode - const annotated_case_name = b.fmt("run safety {s}", .{case.name}); - for (self.test_filters) |test_filter| { - if (mem.indexOf(u8, annotated_case_name, test_filter)) |_| break; - } else if (self.test_filters.len > 0) return; - - const exe = b.addExecutable(.{ - .name = "test", - .root_module = b.createModule(.{ - .root_source_file = first_file, - .target = b.graph.host, - .optimize = .Debug, - }), - }); - if (case.link_libc) exe.root_module.link_libc = true; - - const run = b.addRunArtifact(exe); - run.setName(annotated_case_name); - run.addArgs(case.cli_args); - run.expectExitCode(126); - - self.step.dependOn(&run.step); - }, - } -} - -const CompareOutput = @This(); -const std = @import("std"); -const mem = std.mem; -const fs = std.fs; -const OptimizeMode = std.builtin.OptimizeMode; diff --git a/test/standalone/build.zig.zon b/test/standalone/build.zig.zon @@ -37,8 +37,8 @@ .issue_339 = .{ .path = "issue_339", }, - .issue_8550 = .{ - .path = "issue_8550", + .compile_asm = .{ + .path = "compile_asm", }, .issue_794 = .{ .path = "issue_794", @@ -49,6 +49,9 @@ .pkg_import = .{ .path = "pkg_import", }, + .glibc_compat = .{ + .path = "glibc_compat", + }, .install_raw_hex = .{ .path = "install_raw_hex", }, diff --git a/test/standalone/issue_8550/boot.S b/test/standalone/compile_asm/boot.S diff --git a/test/standalone/issue_8550/build.zig b/test/standalone/compile_asm/build.zig diff --git a/test/standalone/issue_8550/linker.ld b/test/standalone/compile_asm/linker.ld diff --git a/test/standalone/issue_8550/main.zig b/test/standalone/compile_asm/main.zig diff --git a/test/link/glibc_compat/build.zig b/test/standalone/glibc_compat/build.zig diff --git a/test/link/glibc_compat/glibc_runtime_check.c b/test/standalone/glibc_compat/glibc_runtime_check.c diff --git a/test/link/glibc_compat/glibc_runtime_check.zig b/test/standalone/glibc_compat/glibc_runtime_check.zig diff --git a/test/link/glibc_compat/main.c b/test/standalone/glibc_compat/main.c diff --git a/test/tests.zig b/test/tests.zig @@ -6,9 +6,7 @@ const OptimizeMode = std.builtin.OptimizeMode; const Step = std.Build.Step; // Cases -const compare_output = @import("compare_output.zig"); const stack_traces = @import("stack_traces.zig"); -const assemble_and_link = @import("assemble_and_link.zig"); const translate_c = @import("translate_c.zig"); const run_translated_c = @import("run_translated_c.zig"); const llvm_ir = @import("llvm_ir.zig"); @@ -16,7 +14,6 @@ const llvm_ir = @import("llvm_ir.zig"); // Implementations pub const TranslateCContext = @import("src/TranslateC.zig"); pub const RunTranslatedCContext = @import("src/RunTranslatedC.zig"); -pub const CompareOutputContext = @import("src/CompareOutput.zig"); pub const StackTracesContext = @import("src/StackTrace.zig"); pub const DebuggerContext = @import("src/Debugger.zig"); pub const LlvmIrContext = @import("src/LlvmIr.zig"); @@ -1863,25 +1860,6 @@ const c_abi_targets = blk: { }; }; -pub fn addCompareOutputTests( - b: *std.Build, - test_filters: []const []const u8, - optimize_modes: []const OptimizeMode, -) *Step { - const cases = b.allocator.create(CompareOutputContext) catch @panic("OOM"); - cases.* = CompareOutputContext{ - .b = b, - .step = b.step("test-compare-output", "Run the compare output tests"), - .test_index = 0, - .test_filters = test_filters, - .optimize_modes = optimize_modes, - }; - - compare_output.addCases(cases); - - return cases.step; -} - pub fn addStackTraceTests( b: *std.Build, test_filters: []const []const u8, @@ -2175,21 +2153,6 @@ pub fn addCliTests(b: *std.Build) *Step { return step; } -pub fn addAssembleAndLinkTests(b: *std.Build, test_filters: []const []const u8, optimize_modes: []const OptimizeMode) *Step { - const cases = b.allocator.create(CompareOutputContext) catch @panic("OOM"); - cases.* = CompareOutputContext{ - .b = b, - .step = b.step("test-asm-link", "Run the assemble and link tests"), - .test_index = 0, - .test_filters = test_filters, - .optimize_modes = optimize_modes, - }; - - assemble_and_link.addCases(cases); - - return cases.step; -} - pub fn addTranslateCTests( b: *std.Build, parent_step: *std.Build.Step,