Qual é a explicação para "aviso: assumindo que o loop não é infinito"

Acabei de tomar a decisão de alterar tantas variáveis deunsigned paraint e ao recompilar o código em questão, foi recebido por esta mensagem de aviso:

freespace_state.c:203: warning: assuming that the loop is not infinite

A linha em questão:

for (x = startx; x <= endx; ++x, ++xptr)

Esse loop possui 60 linhas de código (incluindo espaços em branco / colchetes etc.) e possui umgoto dentro dele e pelo menos uma ocorrência decontinue.

Nesse caso, acho que sou grata pelo fato de o GCC estar assumindo que esse loop não é infinito, porque nunca deve ser executado indefinidamente.

O que o GCC está tentando me dizer aqui?

A gramática do aviso é quase sugestiva de que o aviso deve ser recebido no contexto de algum outro aviso, mas não há nenhum nesse contexto.

[editar] É tudo completamente minha culpa. Eu roubei algumas opções de otimização e aviso de uma pergunta aqui em algum lugar sem realmente entendê-las, e desde então as esqueci.

Veja a resposta de Mark Rushakoff e, além disso, eu também usei-Wunsafe-loop-optimizations avisar explicitamente se o GCC está fazendo suposições sobre um loop. Vejohttp://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

questionAnswers(3)

yourAnswerToTheQuestion