W Delphi, czy parametry są oceniane w kolejności, gdy są przekazywane do metody?

Czy kolejność obliczania parametrów przed wywołaniem procedury jest zdefiniowana w Delphi?

IOW, jeśli mam ten brzydki kod (znalazłem coś takiego w starszej aplikacji) ...

function A(var err: integer): integer;
begin
  err := 42;
  Result := 17;
end;

Test(A(err), err);

... czy test jest gwarantowany, aby otrzymać parametry (17, 42), czy też może być (17, niezdefiniowany)?

Edytować:

Chociaż przykład Davida zwraca inny wynik w kompilatorze 32-bitowym i 64-bitowym, to (na szczęście) nie ma wpływu na mój stary kod, ponieważ Test (A (err), err) przechowuje tylkoadres 'err' w rejestrze i nie ma znaczenia, czy kompilator robi to przed wywołaniem A (err) czy po.

questionAnswers(2)

yourAnswerToTheQuestion