[fpc-devel]Bug: using @ with procedures in FPC

Sergey Korshunoff Sergey.Korshunoff at p5.f2666.n5020.z2.fidonet.org
Fri Jun 1 02:40:36 CEST 2001


Hello!
Look at program:
==============================================================
{$T+}
program hello2;
 type TP = procedure;
 type PP = ^TP;
var
  p1: TP;
  p2: PP;

procedure A;
  begin
   writeln('Hello world');
  end;

begin
  p1:=a;
  p2:=@p1;
  p2^();
end.
==============================================================

This program is work OK when compiled by FPC in -S2 mode (OBJFPC).
But it is crashing if compiled by FPC in -Sd mode (Delphi).
We have the same behavior when we compile with Kylix (DCC).
I think there is a problem: compilers do not tell us any warning
but generate a wrong code.

If to replace
    p2:=@p1;
with
    p2:=@@p1;
then DCC compiled binary work OK. But FPC do not compile this.

Regards,
    Sergey Korshunoff





More information about the fpc-devel mailing list