[fpc-devel] FPC Delphi compatibility question...

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Jun 19 08:32:22 CEST 2009


On 19 Jun 2009, at 06:45, Bruce Tulloch wrote:

> type
>    function F ( C : TArray ) : TArray;
>    begin
>       { does nothing }
>    end
>
> begin
>    SetLength(B,4);
>    for I := 0 to 3 do
>       B[I] := I;
>
>    A := Copy(B);
>    A := F(B); { what is the correct answer here? }
> end;
>
> a question arises as to the value of A. Should it be nil or should  
> it be
> a copy of B?

Both are correct from a compiler implementation point-of-view, because  
the result of your function call is undefined.

> Obviously F not assigning Result is a programming error, but
> unfortunately it can be a common one in legacy code.

As Vincent indicated, we do not aim for implementing the same  
undefined behaviour as Delphi (we already have our hands full with  
implementing the defined behaviour ;)


Jonas



More information about the fpc-devel mailing list