------- Comment #5 from steven at gcc dot gnu dot org 2010-06-04 07:45 ------- AFAIU, you can't randomly change signed to unsigned, due to different overflow semantics, which is why IVOPTS doesn't make this change itself. Imagine you enter the loop with count = 0, and with a second counter hidden in func. You will not get the same number of iterations if you change the type of count from "int" to "unsigned int".
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42505