В Delphi параметры оцениваются по порядку при передаче в метод?

Определен ли порядок, в котором рассчитываются параметры перед вызовом процедуры, в Delphi?

Если у меня есть этот уродливый код (нашел что-то подобное в унаследованном приложении) ...

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

Test(A(err), err);

... гарантированно ли Test принимает параметры (17, 42) или также (17, не определено)?

Редактировать:

Хотя пример Дэвида возвращает другой результат с 32-битным и 64-битным компилятором, это (к счастью) не влияет на мой унаследованный код, потому что Test (A (err), err) хранит толькоan address из 'err' в регистре, и не имеет значения, делает ли это компилятор перед вызовом A (err) или после.

Ответы на вопрос(2)

Ваш ответ на вопрос