home *** CD-ROM | disk | FTP | other *** search
- (******************************
- This program demonstrates that the ORD function doesn't always return the
- correct value for a CHAR variable and that the statement "c := C^;" moves a
- 16 bit value at address C to the CHAR variable c. Both have caused serious
- gas pains! Is there a fix or Modula2 update available?
- **********************************)
-
- MODULE M2BugDemo;
- FROM STORAGE IMPORT ALLOCATE;
- FROM SYSTEM IMPORT ADDRESS, FILL;
-
- VAR
- A : ADDRESS;
- c : CHAR;
- C : POINTER TO CHAR;
- i : CARDINAL;
-
- BEGIN
- ALLOCATE (A, 10);
- FILL (A, 10, 97);
- FOR i := 0 TO 9 DO
- C := A + i;
- c := C^;
- WRITELN (c, ORD (c));
- END;
- END M2BugDemo.
-