diff options
Diffstat (limited to 'test/incremental/assert_function.8.zig')
| -rw-r--r-- | test/incremental/assert_function.8.zig | 36 |
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 |
