On 24 Sep 2007, at 14:12, mm wrote:

Jonas Maebe a écrit :

Counting on implementation details of opaque entities (such as set formats, anything regarding reference counted types such as when references are added or removed and when how many references will exist, rtti format, code generation details such as evaluation order of parameters [...]

What do you mean with "evaluation order of parameters"?

var
  a: longint;

function f: longint;
begin
  result:=a;
  a:=a+1;
end;

procedure test(a,b: longint);
begin
  writeln(a,' ',b);
end;

begin
  a:=1;
  test(f,f);
end.


The above program can write either "1 2" or "2 1", and what it writes out can change between different compiler versions, platforms and optimization levels (i.e., the parameter evaluation order is undefined).


Jonas_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to