> 2009/5/4 Joseph S. Myers: > > On Mon, 4 May 2009, Jan Hubicka wrote: > > > >> On mainline I enabled infinite loop removal at > >> -funsafe-loop-optimizations. I would suggest adding > >> -fempty-loops-terminate and make it default for C++? It does not apply > >> for C, right? > > > > You mean for C++0x (I see no such rule in C++03), and there is no such > > rule for C at present. > > Yes, the rule is new for C++0x, and it is in the context of for, while > and do-while loops only, not recursive calls.
And when compiler forms a loop via tail call removal? In general recursion can not be infinite, since stack space is finite, but somehow it was earlier concluded that this does not allow elimination of calls to recursive functions that do otherwise nothing. Honza