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.
This commit is contained in:
Alex Rønne Petersen 2025-09-16 16:11:07 +02:00
parent d5c73a44b7
commit 2e3fac3626
No known key found for this signature in database
854 changed files with 160 additions and 1546 deletions

View File

@ -77,12 +77,13 @@ path will be prepended as a prefix on the test case name.
```zig ```zig
// run // run
// backend=stage2,llvm // backend=selfhosted,llvm
// target=x86_64-linux,x86_64-macos // target=x86_64-linux,x86_64-macos
``` ```
Possible backends are: Possible backends are:
* `auto`: the default; compiler picks the backend based on robustness.
* `stage1`: equivalent to `-fstage1`. * `stage1`: equivalent to `-fstage1`.
* `stage2`: equivalent to passing `-fno-stage1 -fno-LLVM`. * `selfhosted`: equivalent to passing `-fno-llvm -fno-lld`.
* `llvm`: equivalent to `-fLLVM -fno-stage1`. * `llvm`: equivalent to `-fllvm`.

View File

@ -6,5 +6,5 @@ export const p_external_variable = &external_variable;
// compile // compile
// output_mode=Obj // output_mode=Obj
// backend=stage2,llvm // backend=selfhosted,llvm
// target=x86_64-linux // target=x86_64-linux

View File

@ -18,5 +18,5 @@ pub fn main() !void {
} }
// run // run
// backend=stage2,llvm // backend=selfhosted,llvm
// target=x86_64-linux,aarch64-linux // target=x86_64-linux,aarch64-linux

View File

@ -5,7 +5,5 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :1:29: error: file path name cannot be empty // :1:29: error: file path name cannot be empty

View File

@ -20,7 +20,6 @@ pub export fn entry4() void {
} }
// error // error
// backend=stage2
// target=x86_64-linux // target=x86_64-linux
// //
// :4:25: error: expected error set or error union type, found 'comptime_int' // :4:25: error: expected error set or error union type, found 'comptime_int'

View File

@ -7,7 +7,6 @@ export fn entry() void {
// https://github.com/ziglang/zig/issues/13782 // https://github.com/ziglang/zig/issues/13782
// error // error
// backend=stage2
// target=x86_64-linux // target=x86_64-linux
// //
// :3:27: error: expected type 'u32', found '@Vector(4, u32)' // :3:27: error: expected type 'u32', found '@Vector(4, u32)'

View File

@ -5,7 +5,5 @@ pub export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:23: error: comptime-only type 'comptime_int' has no pointer address // :2:23: error: comptime-only type 'comptime_int' has no pointer address

View File

@ -3,7 +3,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:14: error: encountered @trap at comptime // :2:14: error: encountered @trap at comptime

View File

@ -10,8 +10,6 @@ pub export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :8:12: error: variable of type 'tmp.S1' must be const or comptime // :8:12: error: variable of type 'tmp.S1' must be const or comptime
// :2:8: note: struct requires comptime because of this field // :2:8: note: struct requires comptime because of this field

View File

@ -6,8 +6,6 @@ export fn a() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:19: error: C pointers cannot point to non-C-ABI-compatible type 'tmp.Foo' // :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 // :3:19: note: only extern structs and ABI sized packed structs are extern compatible

View File

@ -5,7 +5,5 @@ export fn a() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:16: error: C pointers cannot point to opaque types // :3:16: error: C pointers cannot point to opaque types

View File

@ -8,8 +8,6 @@ export fn f2(x: @Vector(4, u32)) @Vector(4, u32) {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:12: error: negation of type 'u32' // :3:12: error: negation of type 'u32'
// :7:12: error: negation of type '@Vector(4, u32)' // :7:12: error: negation of type '@Vector(4, u32)'

View File

@ -4,7 +4,5 @@ fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:28: error: '.*' cannot be followed by '*'; are you missing a space? // :2:28: error: '.*' cannot be followed by '*'; are you missing a space?

View File

@ -15,8 +15,6 @@ pub export fn entry1() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :9:15: error: access of union field 'a' while field 'b' is active // :9:15: error: access of union field 'a' while field 'b' is active
// :2:21: note: union declared here // :2:21: note: union declared here

View File

@ -5,7 +5,5 @@ comptime {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:18: error: no error named 'Bar' in 'error{A}' // :3:18: error: no error named 'Bar' in 'error{A}'

View File

@ -13,8 +13,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:24: error: 'y' not accessible from inner function // :4:24: error: 'y' not accessible from inner function
// :3:9: note: crossed function definition here // :3:9: note: crossed function definition here

View File

@ -6,7 +6,5 @@ export fn entry(y: u8) void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:17: error: 'y' not accessible outside function scope // :3:17: error: 'y' not accessible outside function scope

View File

@ -15,8 +15,6 @@ comptime {
} }
// error // error
// backend=stage2
// target=native
// //
// :6:5: error: found compile log statement // :6:5: error: found compile log statement
// //

View File

@ -15,8 +15,6 @@ comptime {
} }
// error // error
// backend=stage2
// target=native
// //
// :6:5: error: found compile log statement // :6:5: error: found compile log statement
// //

View File

@ -8,7 +8,5 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:29: error: invalid operands to binary expression: 'struct' and 'struct' // :4:29: error: invalid operands to binary expression: 'struct' and 'struct'

View File

@ -8,8 +8,6 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:12: error: expected type '*const i32', found '*const comptime_int' // :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' // :4:12: note: pointer type child 'comptime_int' cannot cast into pointer type child 'i32'

View File

@ -4,7 +4,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:41: error: expected pointer type, found 'u32' // :2:41: error: expected pointer type, found 'u32'

View File

@ -3,7 +3,5 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:21: error: no align available for type 'noreturn' // :2:21: error: no align available for type 'noreturn'

View File

@ -3,7 +3,6 @@ export fn foo() align(1) void {
} }
// error // error
// backend=stage2
// target=wasm32-freestanding-none // target=wasm32-freestanding-none
// //
// :1:23: error: target does not support function alignment // :1:23: error: target does not support function alignment

View File

@ -11,7 +11,5 @@ export fn entry1() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:13: error: enum fields cannot be aligned // :4:13: error: enum fields cannot be aligned

View File

@ -16,8 +16,6 @@ export fn entry4() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:25: error: ambiguous coercion of division operands 'comptime_float' and 'comptime_int'; non-zero remainder '4' // :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' // :6:23: error: ambiguous coercion of division operands 'comptime_int' and 'comptime_float'; non-zero remainder '4'

View File

@ -13,8 +13,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :5:13: error: ambiguous reference // :5:13: error: ambiguous reference
// :7:9: note: declared here // :7:9: note: declared here

View File

@ -4,8 +4,6 @@ pub export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:9: error: expected type '?*anyopaque', found '?usize' // :3:9: error: expected type '?*anyopaque', found '?usize'
// :3:9: note: optional type child 'usize' cannot cast into optional type child '*anyopaque' // :3:9: note: optional type child 'usize' cannot cast into optional type child '*anyopaque'

View File

@ -8,8 +8,6 @@ export fn g() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:8: error: type 'bool' does not support indexing // :3:8: error: type 'bool' does not support indexing
// :3:8: note: operand must be an array, slice, tuple, or vector // :3:8: note: operand must be an array, slice, tuple, or vector

View File

@ -4,8 +4,6 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:14: error: type 'type' does not support indexing // :2:14: error: type 'type' does not support indexing
// :2:14: note: operand must be an array, slice, tuple, or vector // :2:14: note: operand must be an array, slice, tuple, or vector

View File

@ -3,7 +3,5 @@ export fn f() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:5: error: use of undeclared identifier 'i' // :2:5: error: use of undeclared identifier 'i'

View File

@ -12,8 +12,6 @@ export fn g() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:11: error: expected type 'usize', found 'bool' // :4:11: error: expected type 'usize', found 'bool'
// :10:15: error: expected type 'usize', found 'bool' // :10:15: error: expected type 'usize', found 'bool'

View File

@ -7,7 +7,5 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:11: error: expected indexable; found 'usize' // :3:11: error: expected indexable; found 'usize'

View File

@ -32,8 +32,6 @@ export fn entry3() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:17: error: expected 8 vector elements; found 1 // :4:17: error: expected 8 vector elements; found 1
// :8:17: error: expected 8 vector elements; found 0 // :8:17: error: expected 8 vector elements; found 0

View File

@ -5,7 +5,5 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:12: error: type 'u32' does not support array initialization syntax // :4:12: error: type 'u32' does not support array initialization syntax

View File

@ -11,8 +11,6 @@ fn doSomeAsm() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :6:5: error: unable to evaluate comptime expression // :6:5: error: unable to evaluate comptime expression
// :2:14: note: called at comptime from here // :2:14: note: called at comptime from here

View File

@ -8,7 +8,5 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:5: error: asm cannot output to const local 'f' // :4:5: error: asm cannot output to const local 'f'

View File

@ -5,8 +5,6 @@ export fn entry() void {
inline fn b() void {} inline fn b() void {}
// error // error
// backend=stage2
// target=native
// //
// :2:9: error: variable of type '*const fn () callconv(.@"inline") void' must be const or comptime // :2:9: error: variable of type '*const fn () callconv(.@"inline") void' must be const or comptime
// :2:9: note: function has inline calling convention // :2:9: note: function has inline calling convention

View File

@ -13,8 +13,6 @@ export fn varEntry() u32 {
} }
// error // error
// backend=stage2
// target=native
// //
// :6:21: error: expected type 'u32', found 'u64' // :6:21: error: expected type 'u32', found 'u64'
// :6:21: note: unsigned 32-bit int cannot represent all possible unsigned 64-bit values // :6:21: note: unsigned 32-bit int cannot represent all possible unsigned 64-bit values

View File

@ -5,7 +5,5 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :1:16: error: expected type '*u8', found '@TypeOf(null)' // :1:16: error: expected type '*u8', found '@TypeOf(null)'

View File

@ -4,7 +4,5 @@ export fn f() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:9: error: cannot assign to constant // :3:9: error: cannot assign to constant

View File

@ -4,7 +4,5 @@ export fn f() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:9: error: cannot assign to constant // :3:9: error: cannot assign to constant

View File

@ -9,7 +9,5 @@ export fn derp() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :8:6: error: cannot assign to constant // :8:6: error: cannot assign to constant

View File

@ -3,7 +3,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:8: error: cannot dereference non-pointer type 'comptime_int' // :2:8: error: cannot dereference non-pointer type 'comptime_int'

View File

@ -4,7 +4,5 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:26: error: type 'u16' cannot represent integer value '753664' // :2:26: error: type 'u16' cannot represent integer value '753664'

View File

@ -4,8 +4,6 @@ export fn f() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:5: error: unreachable code // :2:5: error: unreachable code
// :2:15: note: control flow is diverted here // :2:15: note: control flow is diverted here

View File

@ -15,8 +15,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :11:20: error: expected type 'u8', found '?u8' // :11:20: error: expected type 'u8', found '?u8'
// :11:20: note: cannot convert optional to payload type // :11:20: note: cannot convert optional to payload type

View File

@ -4,7 +4,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:31: error: @atomicStore atomic ordering must not be acquire or acq_rel // :3:31: error: @atomicStore atomic ordering must not be acquire or acq_rel

View File

@ -5,7 +5,5 @@ export fn f() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:81: error: failure atomic ordering must be no stricter than success // :4:81: error: failure atomic ordering must be no stricter than success

View File

@ -5,7 +5,5 @@ export fn f() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:58: error: success atomic ordering must be monotonic or stricter // :4:58: error: success atomic ordering must be monotonic or stricter

View File

@ -4,7 +4,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:31: error: @atomicRmw with bool only allowed with .Xchg // :3:31: error: @atomicRmw with bool only allowed with .Xchg

View File

@ -10,7 +10,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :9:28: error: @atomicRmw with enum only allowed with .Xchg // :9:28: error: @atomicRmw with enum only allowed with .Xchg

View File

@ -4,7 +4,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:30: error: @atomicRmw with float only allowed with .Xchg, .Add, .Sub, .Max, and .Min // :3:30: error: @atomicRmw with float only allowed with .Xchg, .Add, .Sub, .Max, and .Min

View File

@ -21,8 +21,6 @@ export fn errorSet() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:22: error: expected bool, integer, enum, packed struct, or pointer type; found 'f32' // :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' // :9:22: error: expected bool, integer, float, enum, packed struct, or pointer type; found 'tmp.NormalStruct'

View File

@ -5,7 +5,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:10: error: expected type 'error{Hi}', found '@Type(.enum_literal)' // :3:10: error: expected type 'error{Hi}', found '@Type(.enum_literal)'

View File

@ -6,8 +6,6 @@ fn SimpleList(comptime L: usize) type {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:19: error: mutable 'T' not accessible from here // :4:19: error: mutable 'T' not accessible from here
// :2:9: note: declared mutable here // :2:9: note: declared mutable here

View File

@ -4,7 +4,5 @@ comptime {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:9: error: 17-bit float unsupported // :3:9: error: 17-bit float unsupported

View File

@ -8,7 +8,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :6:15: error: negation of type 'anyerror!u32' // :6:15: error: negation of type 'anyerror!u32'

View File

@ -6,7 +6,5 @@ export fn entry(a: bool, b: bool) i32 {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:11: error: ambiguous use of '&&'; use 'and' for logical AND, or change whitespace to ' & &' for bitwise AND // :2:11: error: ambiguous use of '&&'; use 'and' for logical AND, or change whitespace to ' & &' for bitwise AND

View File

@ -9,8 +9,6 @@ export fn entry2(single: *u32) void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:28: error: expected type '*const [0]u32', found '*u32' // :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' // :2:28: note: pointer type child 'u32' cannot cast into pointer type child '[0]u32'

View File

@ -4,7 +4,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:30: error: expected type '[*]const bool', found 'bool' // :2:30: error: expected type '[*]const bool', found 'bool'

View File

@ -7,8 +7,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:22: error: expected type '*[1]i32', found '*const i32' // :4:22: error: expected type '*[1]i32', found '*const i32'
// :4:22: note: cast discards const qualifier // :4:22: note: cast discards const qualifier

View File

@ -5,8 +5,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:22: error: expected type '[]u32', found '*const u32' // :3:22: error: expected type '[]u32', found '*const u32'
// :3:22: note: cast discards const qualifier // :3:22: note: cast discards const qualifier

View File

@ -5,7 +5,5 @@ comptime {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:47: error: pointer address 0x1 is not aligned to 4 bytes // :3:47: error: pointer address 0x1 is not aligned to 4 bytes

View File

@ -5,8 +5,6 @@ export fn a() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:31: error: expected type '[]align(16) u8', found '*[10]u8' // :3:31: error: expected type '[]align(16) u8', found '*[10]u8'
// :3:31: note: pointer alignment '1' cannot cast into pointer alignment '16' // :3:31: note: pointer alignment '1' cannot cast into pointer alignment '16'

View File

@ -8,8 +8,6 @@ export fn entry2() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:22: error: expected type 'u29', found 'bool' // :2:22: error: expected type 'u29', found 'bool'
// :6:21: error: fractional component prevents float value '12.34' from coercion to type 'u29' // :6:21: error: fractional component prevents float value '12.34' from coercion to type 'u29'

View File

@ -11,7 +11,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :8:5: error: use of undeclared identifier 'bogus' // :8:5: error: use of undeclared identifier 'bogus'

View File

@ -5,6 +5,5 @@ pub fn main() void {
// error // error
// output_mode=Exe // output_mode=Exe
// backend=stage2
// //
// :2:9: error: variable of type '@TypeOf(null)' must be const or comptime // :2:9: error: variable of type '@TypeOf(null)' must be const or comptime

View File

@ -3,7 +3,5 @@ comptime {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:21: error: struct '@TypeOf(.{})' has no member named 'is_optional' // :2:21: error: struct '@TypeOf(.{})' has no member named 'is_optional'

View File

@ -36,8 +36,6 @@ noinline fn dummy() u32 {
noinline fn dummy2() void {} noinline fn dummy2() void {}
// error // error
// backend=stage2
// target=native
// //
// :2:23: error: expected a tuple, found 'void' // :2:23: error: expected a tuple, found 'void'
// :5:21: error: unable to perform 'never_inline' call at compile-time // :5:21: error: unable to perform 'never_inline' call at compile-time

View File

@ -6,7 +6,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:18: error: invalid operands to binary bitwise expression: 'error_set' and 'error_set' // :2:18: error: invalid operands to binary bitwise expression: 'error_set' and 'error_set'

View File

@ -7,7 +7,5 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:61: error: bitwise not operation on type 'comptime_int' // :3:61: error: bitwise not operation on type 'comptime_int'

View File

@ -4,7 +4,5 @@ export fn entry(byte: u8) void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:22: error: @bitCast size mismatch: destination type 'u7' has 7 bits but source type 'u8' has 8 bits // :2:22: error: @bitCast size mismatch: destination type 'u7' has 7 bits but source type 'u8' has 8 bits

View File

@ -5,8 +5,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:18: error: cannot @bitCast to 'tmp.entry.E' // :3:18: error: cannot @bitCast to 'tmp.entry.E'
// :3:18: note: use @enumFromInt to cast from 'u32' // :3:18: note: use @enumFromInt to cast from 'u32'

View File

@ -5,7 +5,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:26: error: @bitCast size mismatch: destination type 'u8' has 8 bits but source type 'f32' has 32 bits // :3:26: error: @bitCast size mismatch: destination type 'u8' has 8 bits but source type 'f32' has 32 bits

View File

@ -4,7 +4,5 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:15: error: bit shifting operation expected integer type, found '*const u8' // :2:15: error: bit shifting operation expected integer type, found '*const u8'

View File

@ -7,7 +7,5 @@ pub export fn entry() void {
} }
// error // 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 // :1:27: error: backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 1

View File

@ -4,8 +4,6 @@ export fn entry() usize {
} }
// error // error
// backend=stage2
// target=native
// //
// :1:29: error: root source file struct 'builtin' has no member named 'bogus' // :1:29: error: root source file struct 'builtin' has no member named 'bogus'
// note: struct declared here // note: struct declared here

View File

@ -4,7 +4,5 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:10: error: boolean not operation on type '@Vector(2, u1)' // :3:10: error: boolean not operation on type '@Vector(2, u1)'

View File

@ -24,8 +24,6 @@ export fn f4() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:22: error: expected type 'usize', found 'void' // :2:22: error: expected type 'usize', found 'void'
// :7:9: error: expected type 'usize', found 'void' // :7:9: error: expected type 'usize', found 'void'

View File

@ -5,8 +5,6 @@ export fn builtinCallBoolFunctionInlineWithVoid() void {
fn boolFunction(_: bool) void {} fn boolFunction(_: bool) void {}
// error // error
// backend=stage2
// target=native
// //
// :2:43: error: expected type 'bool', found 'void' // :2:43: error: expected type 'bool', found 'void'
// :5:20: note: parameter type declared here // :5:20: note: parameter type declared here

View File

@ -4,8 +4,6 @@ export fn entry() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:18: error: C pointers cannot point to non-C-ABI-compatible type 'void' // :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' // :2:18: note: 'void' is a zero bit type; for C 'void' use 'anyopaque'

View File

@ -17,8 +17,6 @@ export fn entry1() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :12:5: error: cannot assign to constant // :12:5: error: cannot assign to constant
// :16:5: error: cannot assign to constant // :16:5: error: cannot assign to constant

View File

@ -7,8 +7,6 @@ export fn entry(a: **S) void {
} }
// error // error
// backend=stage2
// target=native
// //
// 6:10: error: no field or member function named 'b' in '*tmp.S' // 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 // 6:10: note: method invocation only supports up to one level of implicit pointer dereferencing

View File

@ -17,8 +17,6 @@ export fn comptimeBuiltinCall() callconv(.naked) void {
fn f() void {} fn f() void {}
// error // error
// backend=stage2
// target=native
// //
// :2:6: error: runtime call not allowed in naked function // :2:6: error: runtime call not allowed in naked function
// :6:5: error: runtime @call not allowed in naked function // :6:5: error: runtime @call not allowed in naked function

View File

@ -8,8 +8,6 @@ pub export fn entry2() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:9: error: cannot call optional type '?fn () void' // :3:9: error: cannot call optional type '?fn () void'
// :3:9: note: consider using '.?', 'orelse' or 'if' // :3:9: note: consider using '.?', 'orelse' or 'if'

View File

@ -2,8 +2,6 @@ var cc: @import("std").builtin.CallingConvention = .c;
export fn foo() callconv(cc) void {} export fn foo() callconv(cc) void {}
// error // error
// backend=stage2
// target=native
// //
// :2:26: error: unable to resolve comptime value // :2:26: error: unable to resolve comptime value
// :2:26: note: calling convention must be comptime-known // :2:26: note: calling convention must be comptime-known

View File

@ -3,7 +3,6 @@ export fn entry2() callconv(.{ .x86_interrupt = .{} }) void {}
export fn entry3() callconv(.avr_interrupt) void {} export fn entry3() callconv(.avr_interrupt) void {}
// error // error
// backend=stage2
// target=aarch64-linux-none // target=aarch64-linux-none
// //
// :1:30: error: calling convention 'x86_64_interrupt' only available on architectures 'x86_64' // :1:30: error: calling convention 'x86_64_interrupt' only available on architectures 'x86_64'

View File

@ -1,7 +1,6 @@
export fn entry() callconv(.avr_signal) void {} export fn entry() callconv(.avr_signal) void {}
// error // error
// backend=stage2
// target=x86_64-linux-none // target=x86_64-linux-none
// //
// :1:29: error: calling convention 'avr_signal' only available on architectures 'avr' // :1:29: error: calling convention 'avr_signal' only available on architectures 'avr'

View File

@ -15,7 +15,6 @@ export fn entry3() void {
} }
// error // error
// backend=stage2
// target=x86_64-linux-none // target=x86_64-linux-none
// //
// :1:28: error: calling convention 'x86_stdcall' only available on architectures 'x86' // :1:28: error: calling convention 'x86_stdcall' only available on architectures 'x86'

View File

@ -4,8 +4,6 @@ export fn entry() void {
fn foo() callconv(.naked) void {} fn foo() callconv(.naked) void {}
// error // error
// backend=stage2
// target=native
// //
// :2:5: error: unable to call function with calling convention 'naked' // :2:5: error: unable to call function with calling convention 'naked'
// :4:1: note: function declared here // :4:1: note: function declared here

View File

@ -6,8 +6,6 @@ export fn entry() void {
pub extern fn foo(format: *const u8, ...) void; pub extern fn foo(format: *const u8, ...) void;
// error // error
// backend=stage2
// target=native
// //
// :3:16: error: expected type '*const u8', found '[5:0]u8' // :3:16: error: expected type '*const u8', found '[5:0]u8'
// :6:27: note: parameter type declared here // :6:27: note: parameter type declared here

View File

@ -7,8 +7,6 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:13: error: cannot break out of defer expression // :4:13: error: cannot break out of defer expression
// :3:9: note: defer expression here // :3:9: note: defer expression here

View File

@ -7,8 +7,6 @@ export fn foo() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :4:13: error: cannot continue out of defer expression // :4:13: error: cannot continue out of defer expression
// :3:9: note: defer expression here // :3:9: note: defer expression here

View File

@ -17,8 +17,6 @@ export fn d() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:16: error: pointer modifier invalid on discard // :2:16: error: pointer modifier invalid on discard
// :7:18: error: pointer modifier invalid on discard // :7:18: error: pointer modifier invalid on discard

View File

@ -3,8 +3,6 @@ test {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:22: error: unused capture // :2:22: error: unused capture
// :2:38: error: unused capture // :2:38: error: unused capture

View File

@ -4,7 +4,5 @@ test {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:14: error: unused capture // :3:14: error: unused capture

View File

@ -5,7 +5,5 @@ test {
} }
// error // error
// backend=stage2
// target=native
// //
// :3:17: error: unused capture // :3:17: error: unused capture

View File

@ -3,8 +3,6 @@ test {
} }
// error // error
// backend=stage2
// target=native
// //
// :2:25: error: unused capture // :2:25: error: unused capture
// :2:39: error: unused capture // :2:39: error: unused capture

View File

@ -16,8 +16,6 @@ export fn entry2() void {
} }
// error // error
// backend=stage2
// target=native
// //
// :6:9: error: expected type '?*const fn (i8) void', found '?*const fn (u64) void' // :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' // :6:9: note: pointer type child 'fn (u64) void' cannot cast into pointer type child 'fn (i8) void'

Some files were not shown because too many files have changed in this diff Show More