mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 16:19:56 +02:00
60 lines
848 B
ObjectPascal
60 lines
848 B
ObjectPascal
|
|
{
|
|
this file checks that calling done from init is
|
|
done correctly
|
|
}
|
|
|
|
|
|
program test_init_done;
|
|
|
|
|
|
type
|
|
pobject = ^tobject;
|
|
tobject = object
|
|
val : longint;
|
|
constructor init (call_done : boolean);
|
|
destructor done; virtual;
|
|
procedure check;
|
|
end;
|
|
|
|
|
|
constructor tobject.init (call_done : boolean);
|
|
begin
|
|
val:=7;
|
|
if call_done then
|
|
begin
|
|
done;
|
|
fail;
|
|
end;
|
|
end;
|
|
|
|
destructor tobject.done;
|
|
begin
|
|
check;
|
|
end;
|
|
|
|
procedure tobject.check;
|
|
begin
|
|
if val<>7 then
|
|
begin
|
|
writeln('Error in codegeneration');
|
|
halt(1);
|
|
end;
|
|
end;
|
|
|
|
var
|
|
obj1 : tobject;
|
|
obj2 : pobject;
|
|
|
|
begin
|
|
obj1.init(false);
|
|
obj1.done;
|
|
|
|
new(obj2,init(true));
|
|
if assigned(obj2) then
|
|
begin
|
|
writeln('Error in codegeneration of fail');
|
|
halt(1);
|
|
end;
|
|
end.
|