diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-12-07 21:35:02 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-07 21:35:02 -0500 |
| commit | d69e97ae1677ca487833caf6937fa428563ed0ae (patch) | |
| tree | 9299ebd6762715fd756972458f152ed123bf718f /test | |
| parent | 913b4a3f19955296a892ffe4f148f8c097a7732a (diff) | |
| parent | 6039554b26b1aee6502063d9130907369c4ffd38 (diff) | |
| download | zig-d69e97ae1677ca487833caf6937fa428563ed0ae.tar.gz zig-d69e97ae1677ca487833caf6937fa428563ed0ae.zip | |
Merge pull request #13806 from Vexu/stage2-fixes
misc fixes and improvements
Diffstat (limited to 'test')
13 files changed, 7 insertions, 172 deletions
diff --git a/test/behavior/maximum_minimum.zig b/test/behavior/maximum_minimum.zig index 977d06204e..79ec5f14fa 100644 --- a/test/behavior/maximum_minimum.zig +++ b/test/behavior/maximum_minimum.zig @@ -95,3 +95,10 @@ test "@min for vectors" { try S.doTheTest(); comptime try S.doTheTest(); } + +test "@min/@max on lazy values" { + const A = extern struct { u8_4: [4]u8 }; + const B = extern struct { u8_16: [16]u8 }; + const size = @max(@sizeOf(A), @sizeOf(B)); + try expect(size == @sizeOf(B)); +} diff --git a/test/cases/compile_errors/stage1/attempt_to_use_0_bit_type_in_extern_fn.zig b/test/cases/compile_errors/stage1/attempt_to_use_0_bit_type_in_extern_fn.zig deleted file mode 100644 index 021cd97f19..0000000000 --- a/test/cases/compile_errors/stage1/attempt_to_use_0_bit_type_in_extern_fn.zig +++ /dev/null @@ -1,17 +0,0 @@ -extern fn foo(ptr: fn(*void) callconv(.C) void) void; - -export fn entry() void { - foo(bar); -} - -fn bar(x: *void) callconv(.C) void { _ = x; } -export fn entry2() void { - bar(&{}); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:1:23: error: parameter of type '*void' has 0 bits; not allowed in function with calling convention 'C' -// tmp.zig:7:11: error: parameter of type '*void' has 0 bits; not allowed in function with calling convention 'C' diff --git a/test/cases/compile_errors/stage1/comptime_ptrcast_of_zero-sized_type.zig b/test/cases/compile_errors/stage1/comptime_ptrcast_of_zero-sized_type.zig deleted file mode 100644 index 231e735cfa..0000000000 --- a/test/cases/compile_errors/stage1/comptime_ptrcast_of_zero-sized_type.zig +++ /dev/null @@ -1,12 +0,0 @@ -fn foo() void { - const node: struct {} = undefined; - const vla_ptr = @ptrCast([*]const u8, &node); - _ = vla_ptr; -} -comptime { foo(); } - -// error -// backend=stage1 -// target=native -// -// tmp.zig:3:21: error: '*const struct:2:17' and '[*]const u8' do not have the same in-memory representation diff --git a/test/cases/compile_errors/stage1/error_equality_but_sets_have_no_common_members.zig b/test/cases/compile_errors/stage1/error_equality_but_sets_have_no_common_members.zig deleted file mode 100644 index d42169b503..0000000000 --- a/test/cases/compile_errors/stage1/error_equality_but_sets_have_no_common_members.zig +++ /dev/null @@ -1,16 +0,0 @@ -const Set1 = error{A, C}; -const Set2 = error{B, D}; -export fn entry() void { - foo(Set1.A); -} -fn foo(x: Set1) void { - if (x == Set2.B) { - - } -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:7:11: error: error sets 'Set1' and 'Set2' have no common errors diff --git a/test/cases/compile_errors/stage1/implicit_casting_undefined_c_pointer_to_zig_pointer.zig b/test/cases/compile_errors/stage1/implicit_casting_undefined_c_pointer_to_zig_pointer.zig deleted file mode 100644 index 5554146fa5..0000000000 --- a/test/cases/compile_errors/stage1/implicit_casting_undefined_c_pointer_to_zig_pointer.zig +++ /dev/null @@ -1,11 +0,0 @@ -comptime { - var c_ptr: [*c]u8 = undefined; - var zig_ptr: *u8 = c_ptr; - _ = zig_ptr; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:3:24: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/stage1/issue_2687_coerce_from_undefined_array_pointer_to_slice.zig b/test/cases/compile_errors/stage1/issue_2687_coerce_from_undefined_array_pointer_to_slice.zig deleted file mode 100644 index 21fbb6b4fe..0000000000 --- a/test/cases/compile_errors/stage1/issue_2687_coerce_from_undefined_array_pointer_to_slice.zig +++ /dev/null @@ -1,27 +0,0 @@ -export fn foo1() void { - const a: *[1]u8 = undefined; - var b: []u8 = a; - _ = b; -} -export fn foo2() void { - comptime { - var a: *[1]u8 = undefined; - var b: []u8 = a; - _ = b; - } -} -export fn foo3() void { - comptime { - const a: *[1]u8 = undefined; - var b: []u8 = a; - _ = b; - } -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:3:19: error: use of undefined value here causes undefined behavior -// tmp.zig:9:23: error: use of undefined value here causes undefined behavior -// tmp.zig:16:23: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/stage1/ptrToInt_on_void.zig b/test/cases/compile_errors/stage1/ptrToInt_on_void.zig deleted file mode 100644 index 5012be65e0..0000000000 --- a/test/cases/compile_errors/stage1/ptrToInt_on_void.zig +++ /dev/null @@ -1,9 +0,0 @@ -export fn entry() bool { - return @ptrToInt(&{}) == @ptrToInt(&{}); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:2:23: error: pointer to size 0 type has no address diff --git a/test/cases/compile_errors/stage1/ptrToInt_with_pointer_to_zero-sized_type.zig b/test/cases/compile_errors/stage1/ptrToInt_with_pointer_to_zero-sized_type.zig deleted file mode 100644 index 143dc9135d..0000000000 --- a/test/cases/compile_errors/stage1/ptrToInt_with_pointer_to_zero-sized_type.zig +++ /dev/null @@ -1,11 +0,0 @@ -export fn entry() void { - var pointer: ?*u0 = null; - var x = @ptrToInt(pointer); - _ = x; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:3:23: error: pointer to size 0 type has no address diff --git a/test/cases/compile_errors/stage1/reify_type.Pointer_with_invalid_address_space.zig b/test/cases/compile_errors/stage1/reify_type.Pointer_with_invalid_address_space.zig deleted file mode 100644 index 1ca97ce250..0000000000 --- a/test/cases/compile_errors/stage1/reify_type.Pointer_with_invalid_address_space.zig +++ /dev/null @@ -1,18 +0,0 @@ -export fn entry() void { - _ = @Type(.{ .Pointer = .{ - .size = .One, - .is_const = false, - .is_volatile = false, - .alignment = 1, - .address_space = .gs, - .child = u8, - .is_allowzero = false, - .sentinel = null, - }}); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:2:16: error: address space 'gs' not available in stage 1 compiler, must be .generic diff --git a/test/cases/compile_errors/stage1/reify_type_with_non-constant_expression.zig b/test/cases/compile_errors/stage1/reify_type_with_non-constant_expression.zig deleted file mode 100644 index 7eec6b395a..0000000000 --- a/test/cases/compile_errors/stage1/reify_type_with_non-constant_expression.zig +++ /dev/null @@ -1,11 +0,0 @@ -const builtin = @import("std").builtin; -var globalTypeInfo : builtin.Type = undefined; -export fn entry() void { - _ = @Type(globalTypeInfo); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:4:15: error: unable to evaluate constant expression diff --git a/test/cases/compile_errors/stage1/slicing_of_global_undefined_pointer.zig b/test/cases/compile_errors/stage1/slicing_of_global_undefined_pointer.zig deleted file mode 100644 index 8bbc0f85eb..0000000000 --- a/test/cases/compile_errors/stage1/slicing_of_global_undefined_pointer.zig +++ /dev/null @@ -1,10 +0,0 @@ -var buf: *[1]u8 = undefined; -export fn entry() void { - _ = buf[0..1]; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:3:12: error: non-zero length slice of undefined pointer diff --git a/test/cases/compile_errors/stage1/switch_with_invalid_expression_parameter.zig b/test/cases/compile_errors/stage1/switch_with_invalid_expression_parameter.zig deleted file mode 100644 index 1eb74519f5..0000000000 --- a/test/cases/compile_errors/stage1/switch_with_invalid_expression_parameter.zig +++ /dev/null @@ -1,17 +0,0 @@ -export fn entry() void { - Test(i32); -} -fn Test(comptime T: type) void { - const x = switch (T) { - []u8 => |x| x, - i32 => |x| x, - else => unreachable, - }; - _ = x; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:7:17: error: switch on type 'type' provides no expression parameter diff --git a/test/cases/compile_errors/stage1/use_of_comptime-known_undefined_function_value.zig b/test/cases/compile_errors/stage1/use_of_comptime-known_undefined_function_value.zig deleted file mode 100644 index 3500b13dfc..0000000000 --- a/test/cases/compile_errors/stage1/use_of_comptime-known_undefined_function_value.zig +++ /dev/null @@ -1,13 +0,0 @@ -const Cmd = struct { - exec: fn () void, -}; -export fn entry() void { - const command = Cmd{ .exec = undefined }; - command.exec(); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:6:12: error: use of undefined value here causes undefined behavior |
