t_pointer.mod 372 B

123456789101112131415
  1. MODULE TPtr;
  2. // Pointers: NEW, deref store/load, aliasing, NIL both ways,
  3. // DISPOSE + nil-after. Exit 42.
  4. TYPE PInt = POINTER TO INTEGER;
  5. VAR ExitCode : INTEGER;
  6. VAR p, q : PInt;
  7. BEGIN
  8. NEW(p);
  9. p^ := 42;
  10. q := p;
  11. IF (p = q) AND (p # NIL) THEN ExitCode := 40 ELSE ExitCode := 0 END;
  12. DISPOSE(p);
  13. p := NIL;
  14. IF p = NIL THEN ExitCode := ExitCode + 2 END
  15. END TPtr.