https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30409
--- Comment #12 from kargl at gcc dot gnu.org --- (In reply to anlauf from comment #11) > (In reply to kargl from comment #10) > > (In reply to anlauf from comment #8) > > > which is equivalent to > > > > tmp = 1 / y > > do i = 1, n > > ... = expression1(..., tmp) > > end do > > No. Strictly speaking, it is only equivalent to: > > if (n > 0) tmp = 1 / y > do i = 1, n > ... = expression1(..., tmp) > end do Ah, yes, I missed the possibility that the loop may not loop at all.