MODULE TRecPtr; // A global record with pointer fields must emit 8-byte slots in its // data initialiser (matching the layout); a `w 0` would shrink the // global so the next globals clobber its tail. Exit 42. TYPE P = POINTER TO R; R = RECORD a : INTEGER; END; TYPE L = RECORD head, tail : P; n : INTEGER; END; VAR g : L; a, b, ExitCode : INTEGER; BEGIN g.n := 5; a := 37; b := 0; (* would overwrite g.n if g were undersized *) ExitCode := g.n + a (* 42 *) END TRecPtr.