<HTML>
<style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style><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;"><p>"<br>

I think based on both documented and observed behaviour, the following definition would be appropriate:
<br>


<br>

The for-loop variable is undefined after the loop if the loop ran to completion. It retains its last value if the loop exited in a controlled way (goto, break, exit, ?) before running to completion.
<br>


"<br>
<br>
I'm happy with that, although it might be best to simply say (goto, break etc.) since it's hard to be completely exhaustive (since there's raise and continue as well), and let's just hope that someone doesn't call a function that then performs a long jump to a completely different routine!<br>
<br>
For purposes of compiler optimisation, I would argue that, internally, 'exit' is only necessary to check if the for-loop variable is Result, but that's just nit-picking.  I'm in two minds with 'raise' because it's not always easy to determine where the exception is raised (e.g. in a subroutine called by the for-loop, or triggered by an interrupt signal such as a segmentation fault), and I wouldn't call it exiting the loop in a controlled way.<br>
<br>
Gareth aka. Kit.<br>


<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>
</p>
</blockquote></HTML>