name lookup of 'i' changed for new ISO 'for' scoping

Any decent C++ compiler will warn about that stray semicolon, but unfortunately the Arduino IDE turns most of the gcc compiler warnings off.

Why? That's a perfectly valid thing to do, and I do it often. Especially when traversing to the end of a linked list:

for(ptr=head; ptr->next; ptr=ptr->next);
ptr->next = newelement;