//ww:run-exit 0 // Run leg of the retired 926_tagged_sret_run.c row wide_multicall. package main; type oops = !str; type nomem = !void; type wide = struct { xs: []u8, ys: []u8, n: i64 }; fn mk(b: []u8, n: i64) (wide | oops | nomem) = { return wide { xs = b, ys = b, n = n }; }; export fn main() i32 = { let buf: [4]u8 = [1u8, 2u8, 3u8, 4u8]; let r1: (wide | oops | nomem) = mk(buf[0:4], 100); let r2: (wide | oops | nomem) = mk(buf[0:4], 200); match (r1) { case let w: wide => { if (w.n != 100) { return 1; }; }; case let e: oops => return 13; case nomem => return 14; }; match (r2) { case let w: wide => { if (w.n != 200) { return 2; }; }; case let e: oops => return 13; case nomem => return 14; }; return 0; };