123456789101112131415161718192021222324252627282930313233343536373839404142 |
- {$R+}
- type
- ta = object
- constructor init;
- destructor done;
- procedure p;virtual;
- end;
- pa = ^ta;
- constructor ta.init;
- begin
- end;
- destructor ta.done;
- begin
- end;
- procedure ta.p;
- begin
- end;
- type
- plongint = ^longint;
- var
- p : pa;
- data : array[0..4] of longint;
- begin
- fillchar(data,sizeof(data),12);
- p:=new(pa,init);
- p^.p;
- { the vmt pointer gets an invalid value: }
- plongint(p)^:=longint(@data);
- { causes runerror }
- p^.p;
- halt(1);
- end.
|