<p>Am 02.02.2016 15:39 schrieb "Serguei TARASSOV" <<a href="mailto:serge@arbinada.com">serge@arbinada.com</a>>:<br>
><br>
> On 02/02/2016 15:16, <a href="mailto:fpc-pascal-request@lists.freepascal.org">fpc-pascal-request@lists.freepascal.org</a> wrote:<br>
>><br>
>> Date: Tue, 2 Feb 2016 14:36:25 +0100<br>
>> From: Sven Barth<<a href="mailto:pascaldragon@googlemail.com">pascaldragon@googlemail.com</a>><br>
>><br>
>><br>
>>> ><br>
>>> >You confuse left-to-right operator's precedence with function arguments evaluation<br>
>>> .<br>
>><br>
>> No, he does not. Delphi and TP indeed guarantee an evaluation(!) from left<br>
>> to right.<br>
><br>
> For expressions it is clearly documented.<br>
> Is it documented for functions calling? I never saw such conventions.<br>
> It may be a side effect of parsing but not a standard.<br>
> Taking into account a calling convention, the more natural way is to evaluate the arguments accordingly the order in which they are passed to the routine.</p>
<p>I just checked. Up until XE2 it's documented regarding evaluation order for register and pascal calling convention (the others are undefined with exception of passing order), for XE3 it's only passing order for the two and from XE4 on it's even don't care for the passing order... :/<br>
If you want I can provide you the link later on.</p>
<p>Regards,<br>
Sven</p>