From 149bc79486907745c8ffb12a69f65189b26c6dbe Mon Sep 17 00:00:00 2001 From: Jacob G-W Date: Sat, 13 Nov 2021 12:52:17 -0500 Subject: [PATCH] add tests for previous commit --- src/link/Elf.zig | 2 +- test/cases.zig | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 9cad77d427..01b36b322f 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -2604,7 +2604,7 @@ fn addDbgInfoType(self: *Elf, ty: Type, dbg_info_buffer: *std.ArrayList(u8)) !vo // DW.AT.name, DW.FORM.string try dbg_info_buffer.writer().print("{}\x00", .{ty}); } else { - log.err("TODO implement .debug_info for type '{}'", .{ty}); + log.warn("TODO implement .debug_info for type '{}'", .{ty}); try dbg_info_buffer.append(abbrev_pad1); } }, 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; + \\} + , ""); + } }