{ the reason this compiles is that tdef.size and tabstractvarsym.getsize }
{ both return an aint, and then the size of ta is reported as low(aint)  }

type
  ta = array[1..high(ptrint)-4] of byte;
  tr = packed record
    l: longint;
    case byte of
      0: (l: longint);
      1: (e: ta);
  end;

begin
  writeln(sizeof(ta));
end.
