aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/incremental/assert_function.8.zig36
-rw-r--r--test/incremental/comptime_var.2.zig34
-rw-r--r--test/incremental/comptime_var.6.zig32
-rw-r--r--test/incremental/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig2
-rw-r--r--test/incremental/llvm/address_spaces_pointer_access_chaining_array_pointer.zig2
-rw-r--r--test/incremental/llvm/address_spaces_pointer_access_chaining_complex.zig2
-rw-r--r--test/incremental/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig2
-rw-r--r--test/incremental/llvm/any_typed_null_to_any_typed_optional.zig2
-rw-r--r--test/incremental/llvm/blocks.zig2
-rw-r--r--test/incremental/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig2
-rw-r--r--test/incremental/llvm/for_loop.zig2
-rw-r--r--test/incremental/llvm/hello_world.zig2
-rw-r--r--test/incremental/llvm/invalid_address_space_coercion.zig2
-rw-r--r--test/incremental/llvm/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig2
-rw-r--r--test/incremental/llvm/nested_blocks.zig2
-rw-r--r--test/incremental/llvm/optionals.zig2
-rw-r--r--test/incremental/llvm/pointer_keeps_address_space.zig2
-rw-r--r--test/incremental/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig2
-rw-r--r--test/incremental/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig2
-rw-r--r--test/incremental/llvm/pointer_with_different_address_spaces.zig2
-rw-r--r--test/incremental/llvm/pointers_with_different_address_spaces.zig2
-rw-r--r--test/incremental/llvm/rem.zig2
-rw-r--r--test/incremental/llvm/shift_right_plus_left.0.zig2
-rw-r--r--test/incremental/llvm/simple_addition_and_subtraction.zig2
-rw-r--r--test/incremental/llvm/simple_if_statement.zig2
-rw-r--r--test/incremental/llvm/while_loops.zig2
-rw-r--r--test/incremental/x86_64-linux/assert_function.0.zig (renamed from test/incremental/assert_function.0.zig)2
-rw-r--r--test/incremental/x86_64-linux/assert_function.1.zig (renamed from test/incremental/assert_function.1.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.10.zig (renamed from test/incremental/assert_function.10.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.11.zig (renamed from test/incremental/assert_function.11.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.12.zig (renamed from test/incremental/assert_function.12.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.13.zig (renamed from test/incremental/assert_function.13.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.14.zig (renamed from test/incremental/assert_function.14.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.15.zig (renamed from test/incremental/assert_function.15.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.16.zig (renamed from test/incremental/assert_function.16.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.17.zig (renamed from test/incremental/assert_function.17.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.18.zig (renamed from test/incremental/assert_function.18.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.2.zig (renamed from test/incremental/assert_function.2.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.3.zig (renamed from test/incremental/assert_function.3.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.4.zig (renamed from test/incremental/assert_function.4.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.5.zig (renamed from test/incremental/assert_function.5.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.6.zig (renamed from test/incremental/assert_function.6.zig)0
-rw-r--r--test/incremental/x86_64-linux/assert_function.7.zig28
-rw-r--r--test/incremental/x86_64-linux/assert_function.8.zig24
-rw-r--r--test/incremental/x86_64-linux/assert_function.9.zig (renamed from test/incremental/assert_function.9.zig)0
-rw-r--r--test/incremental/x86_64-linux/comptime_var.0.zig (renamed from test/incremental/comptime_var.0.zig)2
-rw-r--r--test/incremental/x86_64-linux/comptime_var.1.zig (renamed from test/incremental/comptime_var.1.zig)0
-rw-r--r--test/incremental/x86_64-linux/comptime_var.2.zig22
-rw-r--r--test/incremental/x86_64-linux/comptime_var.3.zig (renamed from test/incremental/comptime_var.3.zig)0
-rw-r--r--test/incremental/x86_64-linux/comptime_var.4.zig (renamed from test/incremental/comptime_var.4.zig)0
-rw-r--r--test/incremental/x86_64-linux/comptime_var.5.zig (renamed from test/incremental/comptime_var.5.zig)0
-rw-r--r--test/incremental/x86_64-linux/comptime_var.6.zig20
-rw-r--r--test/incremental/x86_64-macos/assert_function.0.zig15
-rw-r--r--test/incremental/x86_64-macos/assert_function.1.zig17
-rw-r--r--test/incremental/x86_64-macos/assert_function.10.zig27
-rw-r--r--test/incremental/x86_64-macos/assert_function.11.zig66
-rw-r--r--test/incremental/x86_64-macos/assert_function.12.zig47
-rw-r--r--test/incremental/x86_64-macos/assert_function.13.zig19
-rw-r--r--test/incremental/x86_64-macos/assert_function.14.zig17
-rw-r--r--test/incremental/x86_64-macos/assert_function.15.zig10
-rw-r--r--test/incremental/x86_64-macos/assert_function.16.zig11
-rw-r--r--test/incremental/x86_64-macos/assert_function.17.zig11
-rw-r--r--test/incremental/x86_64-macos/assert_function.18.zig (renamed from test/incremental/assert_function.7.zig)9
-rw-r--r--test/incremental/x86_64-macos/assert_function.2.zig21
-rw-r--r--test/incremental/x86_64-macos/assert_function.3.zig22
-rw-r--r--test/incremental/x86_64-macos/assert_function.4.zig15
-rw-r--r--test/incremental/x86_64-macos/assert_function.5.zig19
-rw-r--r--test/incremental/x86_64-macos/assert_function.6.zig9
-rw-r--r--test/incremental/x86_64-macos/assert_function.7.zig23
-rw-r--r--test/incremental/x86_64-macos/assert_function.8.zig19
-rw-r--r--test/incremental/x86_64-macos/assert_function.9.zig22
-rw-r--r--test/incremental/x86_64-macos/comptime_var.0.zig12
-rw-r--r--test/incremental/x86_64-macos/comptime_var.1.zig13
-rw-r--r--test/incremental/x86_64-macos/comptime_var.2.zig17
-rw-r--r--test/incremental/x86_64-macos/comptime_var.3.zig10
-rw-r--r--test/incremental/x86_64-macos/comptime_var.4.zig9
-rw-r--r--test/incremental/x86_64-macos/comptime_var.5.zig15
-rw-r--r--test/incremental/x86_64-macos/comptime_var.6.zig15
78 files changed, 602 insertions, 134 deletions
diff --git a/test/incremental/assert_function.8.zig b/test/incremental/assert_function.8.zig
deleted file mode 100644
index f845de9aa0..0000000000
--- a/test/incremental/assert_function.8.zig
+++ /dev/null
@@ -1,36 +0,0 @@
-const builtin = @import("builtin");
-
-extern "c" fn write(usize, usize, usize) usize;
-
-pub fn main() void {
- var i: u32 = 0;
- inline while (i < 4) : (i += 1) print();
- assert(i == 4);
-}
-
-fn print() void {
- switch (builtin.os.tag) {
- .linux => {
- asm volatile ("syscall"
- :
- : [number] "{rax}" (1),
- [arg1] "{rdi}" (1),
- [arg2] "{rsi}" (@ptrToInt("hello\n")),
- [arg3] "{rdx}" (6),
- : "rcx", "r11", "memory"
- );
- },
- .macos => {
- _ = write(1, @ptrToInt("hello\n"), 6);
- },
- else => unreachable,
- }
-}
-
-pub fn assert(ok: bool) void {
- if (!ok) unreachable; // assertion failure
-}
-
-// error
-//
-// :7:21: error: unable to resolve comptime value
diff --git a/test/incremental/comptime_var.2.zig b/test/incremental/comptime_var.2.zig
deleted file mode 100644
index e91c0540ef..0000000000
--- a/test/incremental/comptime_var.2.zig
+++ /dev/null
@@ -1,34 +0,0 @@
-const builtin = @import("builtin");
-
-extern "c" fn write(usize, usize, usize) usize;
-
-pub fn main() void {
- comptime var len: u32 = 5;
- print(len);
- len += 9;
- print(len);
-}
-
-fn print(len: usize) void {
- switch (builtin.os.tag) {
- .linux => {
- asm volatile ("syscall"
- :
- : [number] "{rax}" (1),
- [arg1] "{rdi}" (1),
- [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
- [arg3] "{rdx}" (len),
- : "rcx", "r11", "memory"
- );
- },
- .macos => {
- _ = write(1, @ptrToInt("Hello, World!\n"), len);
- },
- else => unreachable,
- }
-}
-
-// run
-//
-// HelloHello, World!
-//
diff --git a/test/incremental/comptime_var.6.zig b/test/incremental/comptime_var.6.zig
deleted file mode 100644
index 0eb743a05b..0000000000
--- a/test/incremental/comptime_var.6.zig
+++ /dev/null
@@ -1,32 +0,0 @@
-const builtin = @import("builtin");
-
-extern "c" fn write(usize, usize, usize) usize;
-
-pub fn main() void {
- comptime var i: u64 = 2;
- inline while (i < 6) : (i += 1) {
- print(i);
- }
-}
-fn print(len: usize) void {
- switch (builtin.os.tag) {
- .linux => {
- asm volatile ("syscall"
- :
- : [number] "{rax}" (1),
- [arg1] "{rdi}" (1),
- [arg2] "{rsi}" (@ptrToInt("Hello")),
- [arg3] "{rdx}" (len),
- : "rcx", "r11", "memory"
- );
- },
- .macos => {
- _ = write(1, @ptrToInt("Hello"), len);
- },
- else => unreachable,
- }
-}
-
-// run
-//
-// HeHelHellHello
diff --git a/test/incremental/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig b/test/incremental/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig
index 592c82691d..cf43513159 100644
--- a/test/incremental/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig
+++ b/test/incremental/llvm/address_space_pointer_access_chaining_pointer_to_optional_array.zig
@@ -8,5 +8,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/address_spaces_pointer_access_chaining_array_pointer.zig b/test/incremental/llvm/address_spaces_pointer_access_chaining_array_pointer.zig
index 2e342dc852..5907c1dad5 100644
--- a/test/incremental/llvm/address_spaces_pointer_access_chaining_array_pointer.zig
+++ b/test/incremental/llvm/address_spaces_pointer_access_chaining_array_pointer.zig
@@ -8,5 +8,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/address_spaces_pointer_access_chaining_complex.zig b/test/incremental/llvm/address_spaces_pointer_access_chaining_complex.zig
index 5e616bd1da..ece0614f73 100644
--- a/test/incremental/llvm/address_spaces_pointer_access_chaining_complex.zig
+++ b/test/incremental/llvm/address_spaces_pointer_access_chaining_complex.zig
@@ -9,5 +9,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig b/test/incremental/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig
index 519833a0e8..9175bcbc0e 100644
--- a/test/incremental/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig
+++ b/test/incremental/llvm/address_spaces_pointer_access_chaining_struct_pointer.zig
@@ -9,5 +9,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/any_typed_null_to_any_typed_optional.zig b/test/incremental/llvm/any_typed_null_to_any_typed_optional.zig
index af37ebf25d..c155d04497 100644
--- a/test/incremental/llvm/any_typed_null_to_any_typed_optional.zig
+++ b/test/incremental/llvm/any_typed_null_to_any_typed_optional.zig
@@ -6,6 +6,6 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
// :3:21: error: expected *anyopaque, found ?usize
diff --git a/test/incremental/llvm/blocks.zig b/test/incremental/llvm/blocks.zig
index a2fbfeb618..c64909c7fe 100644
--- a/test/incremental/llvm/blocks.zig
+++ b/test/incremental/llvm/blocks.zig
@@ -18,5 +18,5 @@ pub fn main() void {
// run
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig b/test/incremental/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig
index bc5c3d5b81..8f36700757 100644
--- a/test/incremental/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig
+++ b/test/incremental/llvm/dereferencing_though_multiple_pointers_with_address_spaces.zig
@@ -8,5 +8,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/for_loop.zig b/test/incremental/llvm/for_loop.zig
index f58350f59c..e7e701aafa 100644
--- a/test/incremental/llvm/for_loop.zig
+++ b/test/incremental/llvm/for_loop.zig
@@ -12,5 +12,5 @@ pub fn main() void {
// run
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/hello_world.zig b/test/incremental/llvm/hello_world.zig
index bcd9d9f795..4243191b0f 100644
--- a/test/incremental/llvm/hello_world.zig
+++ b/test/incremental/llvm/hello_world.zig
@@ -6,7 +6,7 @@ pub fn main() void {
// run
// backend=llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
// hello world!
//
diff --git a/test/incremental/llvm/invalid_address_space_coercion.zig b/test/incremental/llvm/invalid_address_space_coercion.zig
index e46b327bcf..6b72f1d5a8 100644
--- a/test/incremental/llvm/invalid_address_space_coercion.zig
+++ b/test/incremental/llvm/invalid_address_space_coercion.zig
@@ -8,6 +8,6 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
// :2:12: error: expected *i32, found *addrspace(.gs) i32
diff --git a/test/incremental/llvm/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig b/test/incremental/llvm/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig
index 18b3bebc4d..26f68ce789 100644
--- a/test/incremental/llvm/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig
+++ b/test/incremental/llvm/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig
@@ -8,6 +8,6 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
// :2:12: error: expected *i32, found *addrspace(.gs) i32
diff --git a/test/incremental/llvm/nested_blocks.zig b/test/incremental/llvm/nested_blocks.zig
index 974315df96..47b6c5069b 100644
--- a/test/incremental/llvm/nested_blocks.zig
+++ b/test/incremental/llvm/nested_blocks.zig
@@ -20,5 +20,5 @@ pub fn main() void {
// run
// backend=stage2, llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/optionals.zig b/test/incremental/llvm/optionals.zig
index 05c221a8a8..7d52fc0f17 100644
--- a/test/incremental/llvm/optionals.zig
+++ b/test/incremental/llvm/optionals.zig
@@ -41,5 +41,5 @@ pub fn main() void {
// run
// backend=llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/pointer_keeps_address_space.zig b/test/incremental/llvm/pointer_keeps_address_space.zig
index 3d3718c83e..bfd40566f8 100644
--- a/test/incremental/llvm/pointer_keeps_address_space.zig
+++ b/test/incremental/llvm/pointer_keeps_address_space.zig
@@ -8,5 +8,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig b/test/incremental/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig
index 541522e3af..8114e86c5d 100644
--- a/test/incremental/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig
+++ b/test/incremental/llvm/pointer_keeps_address_space_when_taking_address_of_dereference.zig
@@ -8,5 +8,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig b/test/incremental/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig
index ff8ae13dab..78bc3e4bd6 100644
--- a/test/incremental/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig
+++ b/test/incremental/llvm/pointer_to_explicit_generic_address_space_coerces_to_implicit_pointer.zig
@@ -8,5 +8,5 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/pointer_with_different_address_spaces.zig b/test/incremental/llvm/pointer_with_different_address_spaces.zig
index eaeb669775..8fbd8b07cf 100644
--- a/test/incremental/llvm/pointer_with_different_address_spaces.zig
+++ b/test/incremental/llvm/pointer_with_different_address_spaces.zig
@@ -8,6 +8,6 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
// :2:12: error: expected *addrspace(.fs) i32, found *addrspace(.gs) i32
diff --git a/test/incremental/llvm/pointers_with_different_address_spaces.zig b/test/incremental/llvm/pointers_with_different_address_spaces.zig
index aed6093ec7..39e5e6a6d1 100644
--- a/test/incremental/llvm/pointers_with_different_address_spaces.zig
+++ b/test/incremental/llvm/pointers_with_different_address_spaces.zig
@@ -8,6 +8,6 @@ pub fn main() void {
// error
// output_mode=Exe
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
// :2:13: error: expected *i32, found *addrspace(.gs) i32
diff --git a/test/incremental/llvm/rem.zig b/test/incremental/llvm/rem.zig
index 679932d3c2..9804338ea6 100644
--- a/test/incremental/llvm/rem.zig
+++ b/test/incremental/llvm/rem.zig
@@ -11,5 +11,5 @@ pub fn main() void {
// run
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/shift_right_plus_left.0.zig b/test/incremental/llvm/shift_right_plus_left.0.zig
index 91d324d084..23b733c493 100644
--- a/test/incremental/llvm/shift_right_plus_left.0.zig
+++ b/test/incremental/llvm/shift_right_plus_left.0.zig
@@ -8,5 +8,5 @@ fn assert(a: u32, b: u32) void {
// run
// backend=llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/simple_addition_and_subtraction.zig b/test/incremental/llvm/simple_addition_and_subtraction.zig
index 59011c9d00..8a6f419f4a 100644
--- a/test/incremental/llvm/simple_addition_and_subtraction.zig
+++ b/test/incremental/llvm/simple_addition_and_subtraction.zig
@@ -16,5 +16,5 @@ fn assert(ok: bool) void {
// run
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/simple_if_statement.zig b/test/incremental/llvm/simple_if_statement.zig
index 436fd48e3f..73cf08cda2 100644
--- a/test/incremental/llvm/simple_if_statement.zig
+++ b/test/incremental/llvm/simple_if_statement.zig
@@ -12,5 +12,5 @@ pub fn main() void {
// run
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/llvm/while_loops.zig b/test/incremental/llvm/while_loops.zig
index 3c092be628..3b9276cf7f 100644
--- a/test/incremental/llvm/while_loops.zig
+++ b/test/incremental/llvm/while_loops.zig
@@ -14,5 +14,5 @@ pub fn main() void {
// run
// backend=stage2,llvm
-// target=x86_64-linux
+// target=x86_64-linux,x86_64-macos
//
diff --git a/test/incremental/assert_function.0.zig b/test/incremental/x86_64-linux/assert_function.0.zig
index 889c9b1572..ab34f5328d 100644
--- a/test/incremental/assert_function.0.zig
+++ b/test/incremental/x86_64-linux/assert_function.0.zig
@@ -11,5 +11,5 @@ pub fn assert(ok: bool) void {
}
// run
-// target=x86_64-linux,x86_64-macos
+// target=x86_64-linux
//
diff --git a/test/incremental/assert_function.1.zig b/test/incremental/x86_64-linux/assert_function.1.zig
index ac2df25d85..ac2df25d85 100644
--- a/test/incremental/assert_function.1.zig
+++ b/test/incremental/x86_64-linux/assert_function.1.zig
diff --git a/test/incremental/assert_function.10.zig b/test/incremental/x86_64-linux/assert_function.10.zig
index b3f1610cd6..b3f1610cd6 100644
--- a/test/incremental/assert_function.10.zig
+++ b/test/incremental/x86_64-linux/assert_function.10.zig
diff --git a/test/incremental/assert_function.11.zig b/test/incremental/x86_64-linux/assert_function.11.zig
index d64130a677..d64130a677 100644
--- a/test/incremental/assert_function.11.zig
+++ b/test/incremental/x86_64-linux/assert_function.11.zig
diff --git a/test/incremental/assert_function.12.zig b/test/incremental/x86_64-linux/assert_function.12.zig
index 4f64c1e062..4f64c1e062 100644
--- a/test/incremental/assert_function.12.zig
+++ b/test/incremental/x86_64-linux/assert_function.12.zig
diff --git a/test/incremental/assert_function.13.zig b/test/incremental/x86_64-linux/assert_function.13.zig
index 240abf0108..240abf0108 100644
--- a/test/incremental/assert_function.13.zig
+++ b/test/incremental/x86_64-linux/assert_function.13.zig
diff --git a/test/incremental/assert_function.14.zig b/test/incremental/x86_64-linux/assert_function.14.zig
index d25100dcce..d25100dcce 100644
--- a/test/incremental/assert_function.14.zig
+++ b/test/incremental/x86_64-linux/assert_function.14.zig
diff --git a/test/incremental/assert_function.15.zig b/test/incremental/x86_64-linux/assert_function.15.zig
index 33ae1ed5af..33ae1ed5af 100644
--- a/test/incremental/assert_function.15.zig
+++ b/test/incremental/x86_64-linux/assert_function.15.zig
diff --git a/test/incremental/assert_function.16.zig b/test/incremental/x86_64-linux/assert_function.16.zig
index eef1136423..eef1136423 100644
--- a/test/incremental/assert_function.16.zig
+++ b/test/incremental/x86_64-linux/assert_function.16.zig
diff --git a/test/incremental/assert_function.17.zig b/test/incremental/x86_64-linux/assert_function.17.zig
index ac9dce3079..ac9dce3079 100644
--- a/test/incremental/assert_function.17.zig
+++ b/test/incremental/x86_64-linux/assert_function.17.zig
diff --git a/test/incremental/assert_function.18.zig b/test/incremental/x86_64-linux/assert_function.18.zig
index 31cf1207f3..31cf1207f3 100644
--- a/test/incremental/assert_function.18.zig
+++ b/test/incremental/x86_64-linux/assert_function.18.zig
diff --git a/test/incremental/assert_function.2.zig b/test/incremental/x86_64-linux/assert_function.2.zig
index 8c1c510486..8c1c510486 100644
--- a/test/incremental/assert_function.2.zig
+++ b/test/incremental/x86_64-linux/assert_function.2.zig
diff --git a/test/incremental/assert_function.3.zig b/test/incremental/x86_64-linux/assert_function.3.zig
index a6829f8e02..a6829f8e02 100644
--- a/test/incremental/assert_function.3.zig
+++ b/test/incremental/x86_64-linux/assert_function.3.zig
diff --git a/test/incremental/assert_function.4.zig b/test/incremental/x86_64-linux/assert_function.4.zig
index 69df4354c3..69df4354c3 100644
--- a/test/incremental/assert_function.4.zig
+++ b/test/incremental/x86_64-linux/assert_function.4.zig
diff --git a/test/incremental/assert_function.5.zig b/test/incremental/x86_64-linux/assert_function.5.zig
index 89f3f7df4f..89f3f7df4f 100644
--- a/test/incremental/assert_function.5.zig
+++ b/test/incremental/x86_64-linux/assert_function.5.zig
diff --git a/test/incremental/assert_function.6.zig b/test/incremental/x86_64-linux/assert_function.6.zig
index 1b1b75e68e..1b1b75e68e 100644
--- a/test/incremental/assert_function.6.zig
+++ b/test/incremental/x86_64-linux/assert_function.6.zig
diff --git a/test/incremental/x86_64-linux/assert_function.7.zig b/test/incremental/x86_64-linux/assert_function.7.zig
new file mode 100644
index 0000000000..e6d18a5c3f
--- /dev/null
+++ b/test/incremental/x86_64-linux/assert_function.7.zig
@@ -0,0 +1,28 @@
+pub fn main() void {
+ var i: u32 = 0;
+ while (i < 4) : (i += 1) print();
+ assert(i == 4);
+}
+
+fn print() void {
+ asm volatile ("syscall"
+ :
+ : [number] "{rax}" (1),
+ [arg1] "{rdi}" (1),
+ [arg2] "{rsi}" (@ptrToInt("hello\n")),
+ [arg3] "{rdx}" (6),
+ : "rcx", "r11", "memory"
+ );
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
+// hello
+// hello
+// hello
+// hello
+//
diff --git a/test/incremental/x86_64-linux/assert_function.8.zig b/test/incremental/x86_64-linux/assert_function.8.zig
new file mode 100644
index 0000000000..4ce3ec0844
--- /dev/null
+++ b/test/incremental/x86_64-linux/assert_function.8.zig
@@ -0,0 +1,24 @@
+pub fn main() void {
+ var i: u32 = 0;
+ inline while (i < 4) : (i += 1) print();
+ assert(i == 4);
+}
+
+fn print() void {
+ asm volatile ("syscall"
+ :
+ : [number] "{rax}" (1),
+ [arg1] "{rdi}" (1),
+ [arg2] "{rsi}" (@ptrToInt("hello\n")),
+ [arg3] "{rdx}" (6),
+ : "rcx", "r11", "memory"
+ );
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// error
+//
+// :5:21: error: unable to resolve comptime value
diff --git a/test/incremental/assert_function.9.zig b/test/incremental/x86_64-linux/assert_function.9.zig
index c754bb7711..c754bb7711 100644
--- a/test/incremental/assert_function.9.zig
+++ b/test/incremental/x86_64-linux/assert_function.9.zig
diff --git a/test/incremental/comptime_var.0.zig b/test/incremental/x86_64-linux/comptime_var.0.zig
index 019cf78abb..45f87ecaa1 100644
--- a/test/incremental/comptime_var.0.zig
+++ b/test/incremental/x86_64-linux/comptime_var.0.zig
@@ -6,7 +6,7 @@ pub fn main() void {
// error
// output_mode=Exe
-// target=x86_64-linux,x86_64-macos
+// target=x86_64-linux
//
// :4:21: error: store to comptime variable depends on runtime condition
// :4:11: note: runtime condition here
diff --git a/test/incremental/comptime_var.1.zig b/test/incremental/x86_64-linux/comptime_var.1.zig
index efc51aafe3..efc51aafe3 100644
--- a/test/incremental/comptime_var.1.zig
+++ b/test/incremental/x86_64-linux/comptime_var.1.zig
diff --git a/test/incremental/x86_64-linux/comptime_var.2.zig b/test/incremental/x86_64-linux/comptime_var.2.zig
new file mode 100644
index 0000000000..72bdfad90c
--- /dev/null
+++ b/test/incremental/x86_64-linux/comptime_var.2.zig
@@ -0,0 +1,22 @@
+pub fn main() void {
+ comptime var len: u32 = 5;
+ print(len);
+ len += 9;
+ print(len);
+}
+
+fn print(len: usize) void {
+ asm volatile ("syscall"
+ :
+ : [number] "{rax}" (1),
+ [arg1] "{rdi}" (1),
+ [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
+ [arg3] "{rdx}" (len),
+ : "rcx", "r11", "memory"
+ );
+}
+
+// run
+//
+// HelloHello, World!
+//
diff --git a/test/incremental/comptime_var.3.zig b/test/incremental/x86_64-linux/comptime_var.3.zig
index d4e6d85d9d..d4e6d85d9d 100644
--- a/test/incremental/comptime_var.3.zig
+++ b/test/incremental/x86_64-linux/comptime_var.3.zig
diff --git a/test/incremental/comptime_var.4.zig b/test/incremental/x86_64-linux/comptime_var.4.zig
index 74da6ef448..74da6ef448 100644
--- a/test/incremental/comptime_var.4.zig
+++ b/test/incremental/x86_64-linux/comptime_var.4.zig
diff --git a/test/incremental/comptime_var.5.zig b/test/incremental/x86_64-linux/comptime_var.5.zig
index 76a06f3d4b..76a06f3d4b 100644
--- a/test/incremental/comptime_var.5.zig
+++ b/test/incremental/x86_64-linux/comptime_var.5.zig
diff --git a/test/incremental/x86_64-linux/comptime_var.6.zig b/test/incremental/x86_64-linux/comptime_var.6.zig
new file mode 100644
index 0000000000..2790949561
--- /dev/null
+++ b/test/incremental/x86_64-linux/comptime_var.6.zig
@@ -0,0 +1,20 @@
+pub fn main() void {
+ comptime var i: u64 = 2;
+ inline while (i < 6) : (i += 1) {
+ print(i);
+ }
+}
+fn print(len: usize) void {
+ asm volatile ("syscall"
+ :
+ : [number] "{rax}" (1),
+ [arg1] "{rdi}" (1),
+ [arg2] "{rsi}" (@ptrToInt("Hello")),
+ [arg3] "{rdx}" (len),
+ : "rcx", "r11", "memory"
+ );
+}
+
+// run
+//
+// HeHelHellHello
diff --git a/test/incremental/x86_64-macos/assert_function.0.zig b/test/incremental/x86_64-macos/assert_function.0.zig
new file mode 100644
index 0000000000..20e5cf0b97
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.0.zig
@@ -0,0 +1,15 @@
+pub fn main() void {
+ add(3, 4);
+}
+
+fn add(a: u32, b: u32) void {
+ assert(a + b == 7);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+// target=x86_64-macos
+//
diff --git a/test/incremental/x86_64-macos/assert_function.1.zig b/test/incremental/x86_64-macos/assert_function.1.zig
new file mode 100644
index 0000000000..ac2df25d85
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.1.zig
@@ -0,0 +1,17 @@
+pub fn main() void {
+ add(3, 4);
+}
+
+fn add(a: u32, b: u32) void {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ assert(e == 14);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.10.zig b/test/incremental/x86_64-macos/assert_function.10.zig
new file mode 100644
index 0000000000..b3f1610cd6
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.10.zig
@@ -0,0 +1,27 @@
+pub fn main() void {
+ assert(add(3, 4) == 116);
+}
+
+fn add(a: u32, b: u32) u32 {
+ const x: u32 = blk: {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ const f = d + e; // 24
+ const g = e + f; // 38
+ const h = f + g; // 62
+ const i = g + h; // 100
+ const j = i + d; // 110
+ break :blk j;
+ };
+ const y = x + a; // 113
+ const z = y + a; // 116
+ return z;
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.11.zig b/test/incremental/x86_64-macos/assert_function.11.zig
new file mode 100644
index 0000000000..d64130a677
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.11.zig
@@ -0,0 +1,66 @@
+pub fn main() void {
+ assert(add(3, 4) == 1221);
+ assert(mul(3, 4) == 21609);
+}
+
+fn add(a: u32, b: u32) u32 {
+ const x: u32 = blk: {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ const f = d + e; // 24
+ const g = e + f; // 38
+ const h = f + g; // 62
+ const i = g + h; // 100
+ const j = i + d; // 110
+ const k = i + j; // 210
+ const l = j + k; // 320
+ const m = l + c; // 327
+ const n = m + d; // 337
+ const o = n + e; // 351
+ const p = o + f; // 375
+ const q = p + g; // 413
+ const r = q + h; // 475
+ const s = r + i; // 575
+ const t = s + j; // 685
+ const u = t + k; // 895
+ const v = u + l; // 1215
+ break :blk v;
+ };
+ const y = x + a; // 1218
+ const z = y + a; // 1221
+ return z;
+}
+
+fn mul(a: u32, b: u32) u32 {
+ const x: u32 = blk: {
+ const c = a * a * a * a; // 81
+ const d = a * a * a * b; // 108
+ const e = a * a * b * a; // 108
+ const f = a * a * b * b; // 144
+ const g = a * b * a * a; // 108
+ const h = a * b * a * b; // 144
+ const i = a * b * b * a; // 144
+ const j = a * b * b * b; // 192
+ const k = b * a * a * a; // 108
+ const l = b * a * a * b; // 144
+ const m = b * a * b * a; // 144
+ const n = b * a * b * b; // 192
+ const o = b * b * a * a; // 144
+ const p = b * b * a * b; // 192
+ const q = b * b * b * a; // 192
+ const r = b * b * b * b; // 256
+ const s = c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r; // 2401
+ break :blk s;
+ };
+ const y = x * a; // 7203
+ const z = y * a; // 21609
+ return z;
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.12.zig b/test/incremental/x86_64-macos/assert_function.12.zig
new file mode 100644
index 0000000000..4f64c1e062
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.12.zig
@@ -0,0 +1,47 @@
+pub fn main() void {
+ assert(add(3, 4) == 791);
+ assert(add(4, 3) == 79);
+}
+
+fn add(a: u32, b: u32) u32 {
+ const x: u32 = if (a < b) blk: {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ const f = d + e; // 24
+ const g = e + f; // 38
+ const h = f + g; // 62
+ const i = g + h; // 100
+ const j = i + d; // 110
+ const k = i + j; // 210
+ const l = k + c; // 217
+ const m = l + d; // 227
+ const n = m + e; // 241
+ const o = n + f; // 265
+ const p = o + g; // 303
+ const q = p + h; // 365
+ const r = q + i; // 465
+ const s = r + j; // 575
+ const t = s + k; // 785
+ break :blk t;
+ } else blk: {
+ const t = b + b + a; // 10
+ const c = a + t; // 14
+ const d = c + t; // 24
+ const e = d + t; // 34
+ const f = e + t; // 44
+ const g = f + t; // 54
+ const h = c + g; // 68
+ break :blk h + b; // 71
+ };
+ const y = x + a; // 788, 75
+ const z = y + a; // 791, 79
+ return z;
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.13.zig b/test/incremental/x86_64-macos/assert_function.13.zig
new file mode 100644
index 0000000000..240abf0108
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.13.zig
@@ -0,0 +1,19 @@
+pub fn main() void {
+ const ignore =
+ \\ cool thx
+ \\
+ ;
+ _ = ignore;
+ add('ぁ', '\x03');
+}
+
+fn add(a: u32, b: u32) void {
+ assert(a + b == 12356);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.14.zig b/test/incremental/x86_64-macos/assert_function.14.zig
new file mode 100644
index 0000000000..d25100dcce
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.14.zig
@@ -0,0 +1,17 @@
+pub fn main() void {
+ add(aa, bb);
+}
+
+const aa = 'ぁ';
+const bb = '\x03';
+
+fn add(a: u32, b: u32) void {
+ assert(a + b == 12356);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.15.zig b/test/incremental/x86_64-macos/assert_function.15.zig
new file mode 100644
index 0000000000..33ae1ed5af
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.15.zig
@@ -0,0 +1,10 @@
+pub fn main() void {
+ assert("hello"[0] == 'h');
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.16.zig b/test/incremental/x86_64-macos/assert_function.16.zig
new file mode 100644
index 0000000000..eef1136423
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.16.zig
@@ -0,0 +1,11 @@
+const hello = "hello".*;
+pub fn main() void {
+ assert(hello[1] == 'e');
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.17.zig b/test/incremental/x86_64-macos/assert_function.17.zig
new file mode 100644
index 0000000000..ac9dce3079
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.17.zig
@@ -0,0 +1,11 @@
+pub fn main() void {
+ var i: u64 = 0xFFEEDDCCBBAA9988;
+ assert(i == 0xFFEEDDCCBBAA9988);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/assert_function.7.zig b/test/incremental/x86_64-macos/assert_function.18.zig
index f2f3ffcc3d..31cf1207f3 100644
--- a/test/incremental/assert_function.7.zig
+++ b/test/incremental/x86_64-macos/assert_function.18.zig
@@ -3,9 +3,7 @@ const builtin = @import("builtin");
extern "c" fn write(usize, usize, usize) usize;
pub fn main() void {
- var i: u32 = 0;
- while (i < 4) : (i += 1) print();
- assert(i == 4);
+ for ("hello") |_| print();
}
fn print() void {
@@ -27,14 +25,11 @@ fn print() void {
}
}
-pub fn assert(ok: bool) void {
- if (!ok) unreachable; // assertion failure
-}
-
// run
//
// hello
// hello
// hello
// hello
+// hello
//
diff --git a/test/incremental/x86_64-macos/assert_function.2.zig b/test/incremental/x86_64-macos/assert_function.2.zig
new file mode 100644
index 0000000000..8c1c510486
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.2.zig
@@ -0,0 +1,21 @@
+pub fn main() void {
+ add(3, 4);
+}
+
+fn add(a: u32, b: u32) void {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ const f = d + e; // 24
+ const g = e + f; // 38
+ const h = f + g; // 62
+ const i = g + h; // 100
+ assert(i == 100);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.3.zig b/test/incremental/x86_64-macos/assert_function.3.zig
new file mode 100644
index 0000000000..a6829f8e02
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.3.zig
@@ -0,0 +1,22 @@
+pub fn main() void {
+ add(3, 4);
+}
+
+fn add(a: u32, b: u32) void {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ const f = d + e; // 24
+ const g = e + f; // 38
+ const h = f + g; // 62
+ const i = g + h; // 100
+ const j = i + d; // 110
+ assert(j == 110);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.4.zig b/test/incremental/x86_64-macos/assert_function.4.zig
new file mode 100644
index 0000000000..69df4354c3
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.4.zig
@@ -0,0 +1,15 @@
+pub fn main() void {
+ assert(add(3, 4) == 7);
+ assert(add(20, 10) == 30);
+}
+
+fn add(a: u32, b: u32) u32 {
+ return a + b;
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.5.zig b/test/incremental/x86_64-macos/assert_function.5.zig
new file mode 100644
index 0000000000..89f3f7df4f
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.5.zig
@@ -0,0 +1,19 @@
+pub fn main() void {
+ assert(add(3, 4) == 7);
+ assert(add(20, 10) == 30);
+}
+
+fn add(a: u32, b: u32) u32 {
+ var x: u32 = undefined;
+ x = 0;
+ x += a;
+ x += b;
+ return x;
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.6.zig b/test/incremental/x86_64-macos/assert_function.6.zig
new file mode 100644
index 0000000000..1b1b75e68e
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.6.zig
@@ -0,0 +1,9 @@
+pub fn main() void {
+ const a: u32 = 2;
+ const b: ?u32 = a;
+ const c = b.?;
+ if (c != 2) unreachable;
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/assert_function.7.zig b/test/incremental/x86_64-macos/assert_function.7.zig
new file mode 100644
index 0000000000..27ba37029a
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.7.zig
@@ -0,0 +1,23 @@
+extern "c" fn write(usize, usize, usize) usize;
+
+pub fn main() void {
+ var i: u32 = 0;
+ while (i < 4) : (i += 1) print();
+ assert(i == 4);
+}
+
+fn print() void {
+ _ = write(1, @ptrToInt("hello\n"), 6);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
+// hello
+// hello
+// hello
+// hello
+//
diff --git a/test/incremental/x86_64-macos/assert_function.8.zig b/test/incremental/x86_64-macos/assert_function.8.zig
new file mode 100644
index 0000000000..801cd2e3be
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.8.zig
@@ -0,0 +1,19 @@
+extern "c" fn write(usize, usize, usize) usize;
+
+pub fn main() void {
+ var i: u32 = 0;
+ inline while (i < 4) : (i += 1) print();
+ assert(i == 4);
+}
+
+fn print() void {
+ _ = write(1, @ptrToInt("hello\n"), 6);
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// error
+//
+// :5:21: error: unable to resolve comptime value
diff --git a/test/incremental/x86_64-macos/assert_function.9.zig b/test/incremental/x86_64-macos/assert_function.9.zig
new file mode 100644
index 0000000000..c754bb7711
--- /dev/null
+++ b/test/incremental/x86_64-macos/assert_function.9.zig
@@ -0,0 +1,22 @@
+pub fn main() void {
+ assert(add(3, 4) == 20);
+}
+
+fn add(a: u32, b: u32) u32 {
+ const x: u32 = blk: {
+ const c = a + b; // 7
+ const d = a + c; // 10
+ const e = d + b; // 14
+ break :blk e;
+ };
+ const y = x + a; // 17
+ const z = y + a; // 20
+ return z;
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/comptime_var.0.zig b/test/incremental/x86_64-macos/comptime_var.0.zig
new file mode 100644
index 0000000000..da82b35c6f
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.0.zig
@@ -0,0 +1,12 @@
+pub fn main() void {
+ var a: u32 = 0;
+ comptime var b: u32 = 0;
+ if (a == 0) b = 3;
+}
+
+// error
+// output_mode=Exe
+// target=x86_64-macos
+//
+// :4:21: error: store to comptime variable depends on runtime condition
+// :4:11: note: runtime condition here
diff --git a/test/incremental/x86_64-macos/comptime_var.1.zig b/test/incremental/x86_64-macos/comptime_var.1.zig
new file mode 100644
index 0000000000..efc51aafe3
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.1.zig
@@ -0,0 +1,13 @@
+pub fn main() void {
+ var a: u32 = 0;
+ comptime var b: u32 = 0;
+ switch (a) {
+ 0 => {},
+ else => b = 3,
+ }
+}
+
+// error
+//
+// :6:21: error: store to comptime variable depends on runtime condition
+// :4:13: note: runtime condition here
diff --git a/test/incremental/x86_64-macos/comptime_var.2.zig b/test/incremental/x86_64-macos/comptime_var.2.zig
new file mode 100644
index 0000000000..abd34255cd
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.2.zig
@@ -0,0 +1,17 @@
+extern "c" fn write(usize, usize, usize) usize;
+
+pub fn main() void {
+ comptime var len: u32 = 5;
+ print(len);
+ len += 9;
+ print(len);
+}
+
+fn print(len: usize) void {
+ _ = write(1, @ptrToInt("Hello, World!\n"), len);
+}
+
+// run
+//
+// HelloHello, World!
+//
diff --git a/test/incremental/x86_64-macos/comptime_var.3.zig b/test/incremental/x86_64-macos/comptime_var.3.zig
new file mode 100644
index 0000000000..d4e6d85d9d
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.3.zig
@@ -0,0 +1,10 @@
+comptime {
+ var x: i32 = 1;
+ x += 1;
+ if (x != 1) unreachable;
+}
+pub fn main() void {}
+
+// error
+//
+// :4:17: error: unable to resolve comptime value
diff --git a/test/incremental/x86_64-macos/comptime_var.4.zig b/test/incremental/x86_64-macos/comptime_var.4.zig
new file mode 100644
index 0000000000..74da6ef448
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.4.zig
@@ -0,0 +1,9 @@
+pub fn main() void {
+ comptime var i: u64 = 0;
+ while (i < 5) : (i += 1) {}
+}
+
+// error
+//
+// :3:24: error: cannot store to comptime variable in non-inline loop
+// :3:5: note: non-inline loop here
diff --git a/test/incremental/x86_64-macos/comptime_var.5.zig b/test/incremental/x86_64-macos/comptime_var.5.zig
new file mode 100644
index 0000000000..76a06f3d4b
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.5.zig
@@ -0,0 +1,15 @@
+pub fn main() void {
+ var a: u32 = 0;
+ if (a == 0) {
+ comptime var b: u32 = 0;
+ b = 1;
+ }
+}
+comptime {
+ var x: i32 = 1;
+ x += 1;
+ if (x != 2) unreachable;
+}
+
+// run
+//
diff --git a/test/incremental/x86_64-macos/comptime_var.6.zig b/test/incremental/x86_64-macos/comptime_var.6.zig
new file mode 100644
index 0000000000..381e609bd1
--- /dev/null
+++ b/test/incremental/x86_64-macos/comptime_var.6.zig
@@ -0,0 +1,15 @@
+extern "c" fn write(usize, usize, usize) usize;
+
+pub fn main() void {
+ comptime var i: u64 = 2;
+ inline while (i < 6) : (i += 1) {
+ print(i);
+ }
+}
+fn print(len: usize) void {
+ _ = write(1, @ptrToInt("Hello"), len);
+}
+
+// run
+//
+// HeHelHellHello