> I would think that it would be a common consensus position that whatever > the outcome of this debate, the result must be that the language we are > supposed to write in is well defined.
Right. But "supposed to write in" is not the same as "what we do to avoid breaking legacy code"! I see it as similar to the old CS engineering principle of "be conservative in what you generate but liberal in what you accept". We certainly should encourage people to write correct code (and change GCC to only use correct code), but that doesn't mean it's not worth spending some effort to avoid penalizing old code that doesn't follow those rules. I am being very careful to explicitly not propose that we document exactly what exceptions we make, but we just use engineering judgement to make them in such a way to have a reasonable compromise between code quality and not breaking old code. If we DO document exceptions then we are indeed encouraging people to write in some ad-hoc language and I agree with you that doing so is a very bad idea.