diff options
| author | Jacob G-W <jacoblevgw@gmail.com> | 2021-11-13 12:52:17 -0500 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2021-11-19 09:38:36 +0100 |
| commit | 149bc79486907745c8ffb12a69f65189b26c6dbe (patch) | |
| tree | ee6c5033e669d2f48974ecd33617a1b6ae4a0643 /test/cases.zig | |
| parent | 8fc3a707a44368f3f5c0ded0cc1b7080bf056761 (diff) | |
| download | zig-149bc79486907745c8ffb12a69f65189b26c6dbe.tar.gz zig-149bc79486907745c8ffb12a69f65189b26c6dbe.zip | |
add tests for previous commit
Diffstat (limited to 'test/cases.zig')
| -rw-r--r-- | test/cases.zig | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/cases.zig b/test/cases.zig index 3a8389f7d4..eb0b8fb8b9 100644 --- a/test/cases.zig +++ b/test/cases.zig @@ -1819,4 +1819,36 @@ pub fn addCases(ctx: *TestContext) !void { ":2:28: error: cannot set address space of local variable 'foo'", }); } + { + var case = ctx.exe("issue 10138: callee preserved regs working", linux_x64); + case.addCompareOutput( + \\pub fn main() void { + \\ const fd = open(); + \\ _ = write(fd, "a", 1); + \\ _ = close(fd); + \\} + \\ + \\fn open() usize { + \\ return 42; + \\} + \\ + \\fn write(fd: usize, a: [*]const u8, len: usize) usize { + \\ return syscall4(.WRITE, fd, @ptrToInt(a), len); + \\} + \\ + \\fn syscall4(n: enum { WRITE }, a: usize, b: usize, c: usize) usize { + \\ _ = n; + \\ _ = a; + \\ _ = b; + \\ _ = c; + \\ return 23; + \\} + \\ + \\fn close(fd: usize) usize { + \\ if (fd != 42) + \\ unreachable; + \\ return 0; + \\} + , ""); + } } |
