<HTML>
<p><style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>Lawyers or not, well-defined behaviour can only be a good thing for a language.  As for those code snippets in the VCL and the like, unless we want to change the rule so that the for-loop counter has a distinct value afterwards, Result should be explicitly set after the for loop (presumably people want "High + 1").<br>
<br>
What's the easiest solution to this? Change the code or change the rule?<br>
</p><p>Gareth aka. Kit<br>
 <br>
<br>
<span style="font-weight: bold;">On Fri 18/05/18 12:46 , Mattias Gaertner nc-gaertnma@netcologne.de sent:<br>
</span></p><blockquote style="padding-right: 0px; padding-left: 5px; margin-right: 0px; margin-left: 5px; border-left-color: rgb(245, 245, 245); border-left-width: 2px; border-left-style: solid;">On Fri, 18 May 2018 13:28:30 +0200 (CEST)
<br>

<a href="mailto:marcov@stack.nl">marcov@stack.nl</a> (Marco van de Voort) wrote:
<br>


<br>

<span style="color: rgb(102, 102, 102);">>[...]
</span><br>

<span style="color: rgb(102, 102, 102);">> > > "After the for statement terminates (provided this was not forced by a Break or an Exit procedure), the value of counter is undefined."
</span><br>

<span style="color: rgb(102, 102, 102);">>[...]
</span><br>

<span style="color: rgb(102, 102, 102);">> Well, well, clearly. One could interpret it that it says that the for
</span><br>

<span style="color: rgb(102, 102, 102);">> statement terminates naturally if not forced by break or exit.  It doesn't
</span><br>

<span style="color: rgb(102, 102, 102);">> say what happens with break or exit.
</span><br>


<br>

If the value of counter is undefined no matter what, then you would
<br>

not bother writing the exception in the brackets, wouldn't you?
<br>


<br>

  
<br>

<span style="color: rgb(102, 102, 102);">> The fact that this exception is not documented with an example makes it very
</span><br>

<span style="color: rgb(102, 102, 102);">> ambiguous IMHO.
</span><br>


<br>

I found a dozen places in the VCL using this. 
<br>

For Result:=...do if ... then exit;
<br>


<br>


<br>

Mattias
<br>

_______________________________________________
<br>

fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<br>

<a href="<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>" target="_blank"><span style="color: red;">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</span></a>
<br>

<br>

<br>

</blockquote></HTML>