tb0152.pp 677 B

12345678910111213141516171819202122232425262728293031323334
  1. { Old file: tbs0182.pp }
  2. { @record.field doesn't work in constant expr OK 0.99.9 (PM) }
  3. TYPE Rec = RECORD
  4. x:WORD;
  5. y:WORD;
  6. END;
  7. Rec1 = Record
  8. x,y : longint;
  9. end;
  10. Rec2 = Record
  11. r,s : Rec1;
  12. z : word;
  13. end;
  14. plongint = ^longint;
  15. VAR s:WORD;
  16. r:Rec;
  17. rr : Rec2;
  18. CONST p1:POINTER = @s; { Works fine }
  19. p2:POINTER = @R.y; { illegal expression }
  20. p3:pointer = @rr.s.y;
  21. p4:plongint = @rr.s.y;
  22. BEGIN
  23. rr.s.y:=15;
  24. if plongint(p3)^<>15 then
  25. Begin
  26. Writeln('Error : wrong code generated');
  27. Halt(1);
  28. End;
  29. END.