tprec6.pp 880 B

12345678910111213141516171819202122232425262728
  1. { from gpc testsuite (martin3.pas) }
  2. Program PackedAssignTest;
  3. Uses uprec6;
  4. Var I,J:Integer;
  5. APackedBoolean:TPackedBoolean;
  6. Begin
  7. writeln(sizeof(APackedBoolean[0]));
  8. writeln(sizeof(APackedBoolean[1]));
  9. // writeln(ptruint(@APackedBoolean[1])-ptruint(@APackedBoolean[0]));
  10. // writeln(ptruint(@APackedBoolean[2])-ptruint(@APackedBoolean[1]));
  11. // writeln(ptruint(@APackedBoolean[3])-ptruint(@APackedBoolean[2]));
  12. for I := 1 to MaxA do
  13. for J := 1 to MaxB do
  14. APackedBoolean[I, J] := J = I + 1;
  15. ARecord.C:=99;
  16. ARecord.D:=100;
  17. ARecord.PackedBoolean:=APackedBoolean;
  18. for I := 1 to MaxA do
  19. for J := 1 to MaxB do
  20. if ARecord.PackedBoolean[I, J] <> (J = I + 1) then
  21. Begin
  22. WriteLn ('failed ', I, ' ', J);
  23. Halt(1);
  24. end;
  25. if (ARecord.D = 100) and (ARecord.C = 99) then WriteLn ('OK') else begin WriteLn ('failed 2'); halt(2) end;
  26. end.