12345678910111213141516171819202122232425262728 |
- program BugDemo2;
- type
- MyRecordType =
- record
- RecordElement1 : word;
- RecordElement2 : word;
- end;
- var
- MyRecord : MyRecordType;
- MyPointer1,MyPointer2 : pointer;
- begin
- with MyRecord do
- begin
- { next statement crashes the compiler }
- MyPointer1 := addr(RecordElement2);
- { next statement is OK }
- MyPointer2 := addr(MyRecord.RecordElement2);
- end;
- if MyPointer1<>MyPointer2 then
- begin
- Writeln('Error with addr() and with statement');
- halt(1);
- end;
- end.
|