http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59892
--- Comment #3 from Lukasz Dorau <lukasz.dorau at intel dot com> --- (In reply to Markus Trippelsdorf from comment #2) > When v.hosts[0] or v.hosts[1] is NULL the loop is fine, so there is > no reason for a warning. > The testcase is obviously invalid. > But v.hosts[0] and v.hosts[1] do not have to be NULL. What's more, they are supposed not to be NULL. So why is it invalid? I understand that the loop is erroneous, but I do not understand why misoptimizing the code by dropping 'id < 2' loop condition is a right thing to do? And even without any warning?