// a uniquely owned free returns the block to its size class at once. // a plain free still quarantines; that contract lives in quarantine.zc. struct node { node* c; int n; }; unchecked fn addr(p) { return p; } fn main() { let base = live_objects(), p, q, slot; node* a; node* b; p = new(4); a = new(node); b = new(node); p[0] = 111; a.c = b; a.n = 1; b.c = 0; b.n = 2; slot = addr(p); free(d*p); q = new(4); free(d*a); put_n(q == slot); put_c(' '); put_n(q[0]); put_c(' '); put_n(live_objects() - base); put_c(10); free(d*q); return 0; }