[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