bug0199.pp 408 B

123456789101112131415161718192021222324
  1. PROGRAM PRTest;
  2. TYPE
  3. ptRec = ^tRec;
  4. tRec = Record
  5. D : DWORD;
  6. END;
  7. VAR
  8. pR1, pR2 : ptRec;
  9. BEGIN
  10. GetMem(pR1, SizeOf(tRec));
  11. GetMem(pR2, SizeOf(tRec));
  12. pR1^.D := 10;
  13. Move(pR1^,pR2^,SizeOf(tRec));
  14. WriteLn(pR1^.D:16,pR2^.D:16);
  15. pR1^.D := 1;
  16. pR2^.D := pR1^.D*2; { THE BUG IS HERE }
  17. WriteLn(pR1^.D:16,pR2^.D:16);
  18. if (pR1^.D<>1) or (pR2^.D<>2) then
  19. Halt(1);
  20. END.