Returning stack variable references from inlined functions (opens in new tab)
pub inline fn getStdout(io: std.Io, comptime buf_size: usize) *std.Io.Writer { var buf: [buf_size]u8 = undefined; var instance = std.Io.File.stdout().writer(io, &buf); return &instance.interface; } pub fn main(init: std.process.Init) !void { const stdout = getStdout(init.io, 4096); try stdout.writeAll("Hello, World!\n"); try stdout.flush(); } Is this undefined behaviour? I know returning references to local variables is illegal, but does inlining it make it ...
Read the original article