[comp.sys.mac.programmer] Think Pascal 3.01 bug

lindhurs@schaefer.math.wisc.edu (Scott Lindhurst) (01/27/91)

I have found a bug in the code generated by Think Pascal 3.01 with
some packed records.  The following program, when compiled and
run on my Mac Plus, generates an address error in the assignment to
foo.num2.  Or, if the filler field is included in the bugRec,
the first assignment doesn't change foo at all (as verified by
LightsBug, which won't change foo.num2 either), and the assignment
to i has an illegal instruction ($FE58) in it.

program PascalBug;

   type
      bugRec = packed record
            num1: 0..127;
            num2: 0..1023;
{filler: 0..127}
         end;

   var
      foo: bugRec;
      i: integer;

begin
   foo.num2 := 63;
   i := foo.num2;
end.


Scott Lindhurst
lindhurs@math.wisc.edu
lindhurs@slichter.math.wisc.edu