123456789101112131415161718192021222324252627282930313233343536373839404142 |
- {$Q+}
- type
- tproc = function : longint;
- var
- f : tproc;
- fa : array [0..1] of tproc;
- function dummy : longint;
- begin
- dummy:=25;
- end;
- const
- prog_has_errors : boolean = false;
- procedure Wrong(const s : string);
- begin
- writeln(s);
- prog_has_errors:=True;
- end;
- Begin
- f:=@dummy;
- if f()<>25 then
- Wrong('f() does not call dummy !!');
- if pointer(@f)=pointer(@dummy) then
- Wrong('@f returns value of f !');
- if longint(f)=longint(@f) then
- Wrong('longint(@f)=longint(f) !!!!');
- if f<>@dummy then
- Wrong('f does not return the address of dummy');
- if longint(@f)=longint(@dummy) then
- Wrong('longint(@f) returns address of dummy instead of address of f');
- fa[0]:=@dummy;
- if longint(@f)=longint(@fa[0]) then
- Wrong('arrays of procvar also wrong');
- if longint(f)<>longint(fa[0]) then
- Wrong('arrays of procvar and procvars are handled differently !!');
- if prog_has_errors then
- Halt(1);
- End.
|