MODULE TArrRecFld; (* Regression for docs/wip/arrrec-field-openarray.mod: an array field of an array-of-record element passed as an open-array actual. The field's inline descriptor length word must be initialised in the static array-of-record data, else the callee reads 0 and traps. Exit 42. *) VAR ExitCode : INTEGER; TYPE ProcEnt = RECORD name : ARRAY [0..63] OF CHAR; END; VAR procs : ARRAY [0..3] OF ProcEnt; nProcs : CARDINAL; PROCEDURE CopyN (src : ARRAY OF CHAR; VAR dst : ARRAY OF CHAR); VAR i : CARDINAL; BEGIN i := 0; WHILE (i < 63) AND (src[i] # CHR(0)) DO dst[i] := src[i]; INC(i) END; dst[i] := CHR(0) END CopyN; PROCEDURE NoteProc (name : ARRAY OF CHAR); BEGIN CopyN(name, procs[nProcs].name); INC(nProcs) END NoteProc; BEGIN NoteProc("hello"); IF (procs[0].name[0] = "h") AND (procs[0].name[4] = "o") THEN ExitCode := 42 ELSE ExitCode := 1 END END TArrRecFld.