[comp.sys.mac.programmer] MPW Pascal Bug

gaines@.ucalgary.ca (Brian Gaines) (10/11/88)

Under MPW and MPW Pascal 2.0.2 I have been getting a peculiar compiler error
which looks like an interaction between packed byte arrays and register usage.
The code below is a reduced skeleton that shows the error.

Anyone else met this?  Any later update to Pascal without the problem?

Brian Gaines, gaines@calgary.cdn, (403) 239-7696

Compilation and code follows:-

-------
Compilation follows
-------

   Pascal FocLibx.p -o FocLibx.p.o

### Code Generator Fatal Error
### Register 0..3
### Within DELEGRID (Error 2001): Expression too complicated, code generator ran out of registers ###
### IC = 64, IN = 0:200

-------
Program follows
-------

Unit x;

Interface

Implementation

Type

  bt  = 0..255;

  ba  = Packed Array[1..10,1..10] Of bt;
  
  gp       = ^gr;
  gr       = Record
      gr:  Packed Array[1..2] of ba;
    end;
	
Procedure DelEgrid(g: gp);
Var
  i,j          : Integer;
Begin
  With g^ Do Begin
    For i:=1 To 10 Do gr[1,i,j]:=gr[1,i,j];
  End;
End;

End.

8325499@elecvax.eecs.unsw.oz (Gilbert Taylor-Wood) (10/24/88)

    I found the same thing happened when getting Weave/Tangle to run
as MPW tools, My solution was to rearrange the offending expressions
so that the most deeply nested parts came first. You may have more
trouble :-).
    I think I reported the problem { along with several others } to 
Apple Australia but they never replied and as far as I know there is
no fix.

    regards
       Gilbert