------- Comment #6 from rakdver at gcc dot gnu dot org 2009-05-15 00:34 ------- (In reply to comment #5) > It is number of iteration analysis that gets it wrong (I suppose it might get > confused by the two exits of the loop?).
Sort of; # of iterations analysis assumes that pointers never wrap, and uses this assumption to derive a wrong number of iterations for the first exit (which is not taken). We had a similar problem before (PR 25985), but I somehow persuaded myself that this cannot happen with pointers. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40087