//ww:run-exit 36 package main; // A call through a struct field declared `*fn(...)`, by value and via // pointer. The wwstage fnptrcalleetfn N_DOT arm lacked the TPTR peel // its N_IDENT arm had, so the callee fell through to the name registry // and emitted CALL cb(SB) — an undefined symbol. type cbs = struct { cb: *fn(x: i32) i32, k: i32, }; fn twice(x: i32) i32 = { return x * 2; }; fn main() i32 = { let o: cbs; o.cb = &twice; o.k = 4; let p: *cbs = &o; return o.cb(10) + p.cb(6) + o.k; };