aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-12-07 21:35:02 -0500
committerGitHub <noreply@github.com>2022-12-07 21:35:02 -0500
commitd69e97ae1677ca487833caf6937fa428563ed0ae (patch)
tree9299ebd6762715fd756972458f152ed123bf718f /test
parent913b4a3f19955296a892ffe4f148f8c097a7732a (diff)
parent6039554b26b1aee6502063d9130907369c4ffd38 (diff)
downloadzig-d69e97ae1677ca487833caf6937fa428563ed0ae.tar.gz
zig-d69e97ae1677ca487833caf6937fa428563ed0ae.zip
Merge pull request #13806 from Vexu/stage2-fixes
misc fixes and improvements
Diffstat (limited to 'test')
-rw-r--r--test/behavior/maximum_minimum.zig7
-rw-r--r--test/cases/compile_errors/stage1/attempt_to_use_0_bit_type_in_extern_fn.zig17
-rw-r--r--test/cases/compile_errors/stage1/comptime_ptrcast_of_zero-sized_type.zig12
-rw-r--r--test/cases/compile_errors/stage1/error_equality_but_sets_have_no_common_members.zig16
-rw-r--r--test/cases/compile_errors/stage1/implicit_casting_undefined_c_pointer_to_zig_pointer.zig11
-rw-r--r--test/cases/compile_errors/stage1/issue_2687_coerce_from_undefined_array_pointer_to_slice.zig27
-rw-r--r--test/cases/compile_errors/stage1/ptrToInt_on_void.zig9
-rw-r--r--test/cases/compile_errors/stage1/ptrToInt_with_pointer_to_zero-sized_type.zig11
-rw-r--r--test/cases/compile_errors/stage1/reify_type.Pointer_with_invalid_address_space.zig18
-rw-r--r--test/cases/compile_errors/stage1/reify_type_with_non-constant_expression.zig11
-rw-r--r--test/cases/compile_errors/stage1/slicing_of_global_undefined_pointer.zig10
-rw-r--r--test/cases/compile_errors/stage1/switch_with_invalid_expression_parameter.zig17
-rw-r--r--test/cases/compile_errors/stage1/use_of_comptime-known_undefined_function_value.zig13
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