This sounds like a odd question but is i++ on a volatile int guarantied atomic ?
I ask because the GCC often make some extra moves so it can use ADIW which is atomic, but will that always be the case?
I know that you can avoid ++ from main but still I will like to know :)