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

Whilst I agree that those examples are not quite in the same category as "if (x = 8)", I think the fact that the OP made the mistake of putting in that semicolon and had to ask for help to find it demonstrates the usefulness of a compiler warning for this construct.

No, it highlights the fact that, given the target market for the Arduino, the C language was a very poor choice. It is a very complex language, and easy to make mistakes if you don't know what you're doing - and in the land of the Arduino, 9 times out of 10, the "programmers" don't know what they are doing. This is often the first time they have written any code in their lives.

Anyone who writes commercial C code without a coding style and a tool that enforces that style (even if that tool is just the compiler with extra warnings enabled) is IMO stupid and irresponsible. But Arduino is intended for hobbyists and novices, so the situation here is less clear cut. I would like the Arduino IDE to provide a choice of warning levels, or some way of passing additional flags to gcc.

The coding style starts with the user. If they don't know what they're doing, no amount of forced coding styles (which I abhor - coding styles are personal), and warnings (which on the Arduino are pointless, because a) the line numbers are wrong, and b) people don't read them, they just post snippets of them on here and ask what is wrong), will make them better programmers.

I could sit here all day and go on about things that could be improved with the Arduino so called "IDE", and yes, the ability to set compiler options (warnings, and such) is pretty high on my list. But it does come below having an IDE that is actually usable for anything more than writing short little test snippets of code.