<div dir="ltr">Goedenavond,<div><br></div><div>The following snippet gives the above mentioned error message on Mac (Yosem.) and aborts the compilation process on Ubuntu (14.04). I'm using version 3.0.2 [2017/02/12] for i386 and 3.0.2 [2017/02/25] for x86_64. There are several variants (mentioned in code) which influence the outcome. Code is from a low-level header file which I likely won't ever need but I thought it might be of interest nevertheless.</div><div><br></div><div>Hans-Peter<br></div><div><br></div><div>PS: in case this should go to Tracker/Mantis? could this do someone, maybe? (otherwise let me know, thanks).</div><div><br></div><div>```pascal (file saved as a.pas)</div><div><div><div>{$MODE DELPHI}  // (1) _NOT_ using delphi mode works</div><div>unit a;</div><div><br></div><div>{==============================================================================}</div><div>interface</div><div><br></div><div>type</div><div>  pSExp = pointer;</div><div>  aSExpArr = array[0..((MaxInt div SizeOf(pSExp)) - 1)] of pSExp;</div><div>  // aSExpArr = array[0..((MaxInt div 2*SizeOf(pSExp)) - 1)] of pSExp;</div><div>  // (2) using a _shorter_ array, eg. ^^ works on Ubuntu (Mac still Error)</div><div><br></div><div>  pFoo = ^aFoo;</div><div>  aFoo = record</div><div>    rec: aSExpArr;</div><div>  end;</div><div><br></div><div>function ahoppla(_x: pFoo): aSExpArr;</div><div><br></div><div>{==============================================================================}</div><div>implementation</div><div><br></div><div>type</div><div>  pData = ^aData;</div><div>  aData = record</div><div>    offset: array[1..24] of byte;  // (3) uncommenting offset works</div><div>    SExpArr: aSExpArr;</div><div>  end;</div><div><br></div><div>function ahoppla(_x: pFoo): aSExpArr;</div><div>  begin</div><div>    ahoppla:= pData(_x)^.SExpArr;</div><div>    // ahoppla:= _x.rec;           // (4) _not_ casting works on Ubuntu (Mac error)</div><div>  end;</div><div><br></div><div>end {a}.</div></div><div>```<br></div></div></div>