//ww:run-exit 0 // Run leg of the retired 929_tagged_memarg_run.c row mem56_srcshapes. package main; type t_lit = rune; type t_any = void; type t_rep = struct { id: size, origin: size, m0: size, m1: size, m2: size, m3: size }; type t_u = (t_lit | t_any | t_rep); type holder = struct { k: i64, u: t_u }; fn probe(a: t_u) i32 = { match (a) { case let l: t_lit => { if (l == 'x') { return 1; }; return 91; }; case t_any => { return 2; }; case let r: t_rep => { if (r.m3 != 1234) { return 92; }; if (r.m2 != 12) { return 93; }; if (r.id != 7) { return 94; }; return 3; }; }; return 99; }; export fn main() i32 = { let arr: [2]t_u = [ ('x': t_lit): t_u, ('x': t_lit): t_u, ]; if (probe(arr[1]) != 1) { return 1; }; let r: t_rep = t_rep { id = 7, origin = 9, m0 = 10, m1 = 11, m2 = 12, m3 = 1234 }; let h: holder = holder { k = 9, u = r }; if (probe(h.u) != 3) { return 2; }; let x: t_u = ('x': t_lit); let p: *t_u = &x; if (probe(*p) != 1) { return 3; }; return 0; };