Unless I'm missing something, that could be unrolled without any problems. The only problem that could occur is if Test2 raises an exception (which, as the name implies, is an exceptional situation) or it jumps outside of the procedure, which can only realistically occur in some compiler optimisations (e.g. CALL [routine]; RET is optimised to JMP [routine]). Exit is not a problem here because it will simply exit Test2 and stay within the for-loop.
Gareth aka. Kit On Mon 21/05/18 18:27 , Ondrej Pokorny laza...@kluug.net sent: On 21.05.2018 18:23, Martok wrote: > Am 21.05.2018 um 17:44 schrieb Florian Klämpfl: >> I added raise, exit, goto and label as well. > Oh, label, right. > > I'd say #0033614 can be resolved as "fixed in 39083" and #0033753 as "no change > required" then. Well there is still something left: program LoopUnrollTest; procedure Test; var I: Integer; procedure Test2; begin Writeln(I); end; begin for I := 1 to 10 do Test2; end; begin Test; end. Ondrej _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org [1] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel [2]">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel Links: ------ [1] mailto:fpc-devel@lists.freepascal.org [2] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel