| 1234567891011121314151617181920212223242526 |
- MODULE TOpenRowAdr;
- (* M6: row view passed to a 1-D open formal preserves ADR identity. *)
- FROM SYSTEM IMPORT ADDRESS, ADR;
- CONST N = 3;
- TYPE Vector = ARRAY [1..N] OF REAL;
- Matrix = ARRAY [1..N] OF Vector;
- VAR ExitCode : INTEGER;
- m : Matrix;
- expect : ADDRESS;
- PROCEDURE Inner (VAR a : ARRAY OF REAL);
- BEGIN
- IF ADR(a) # expect THEN ExitCode := 1 END
- END Inner;
- PROCEDURE Outer (VAR a : ARRAY OF ARRAY OF REAL);
- BEGIN
- expect := ADR(a[0]);
- Inner(a[0])
- END Outer;
- BEGIN
- expect := ADR(m);
- Outer(m);
- IF ExitCode = 0 THEN ExitCode := 42 END
- END TOpenRowAdr.
|