aboutsummaryrefslogtreecommitdiff
path: root/test/incremental/assert_function.8.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/incremental/assert_function.8.zig')
-rw-r--r--test/incremental/assert_function.8.zig36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/incremental/assert_function.8.zig b/test/incremental/assert_function.8.zig
new file mode 100644
index 0000000000..c8c30cfac6
--- /dev/null
+++ b/test/incremental/assert_function.8.zig
@@ -0,0 +1,36 @@
+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
+//
+// :3:21: error: unable to resolve comptime value