Hi, On Sat, 30 Apr 2005, Kriang Lerdsuwanakij wrote:
> Sure, this code compiles with 4.1 and 3.4 but doesn't compile with 4.0. > Although the code is valid, I'd bet it doesn't work the way the > programmer of the above code (or other 99% who doesn't track > the standard closely) would expect. Note that this was a reduced testcase from the original file. I optimized only for triggering the non-compilation, not for preserving the authors initial intent. For instance it may very well be possible that this friend declaration was not necessary at all, and only put there by the author because of confusion or it was initially needed, then later this need was removed, but the friend decl was forgotten. So, the basic facts which interest me for the purpose of this discussion are: 1) the program in its original form can be compiled with 3.3 and 3.4 _and_ worked there (for whatever reasons it worked) 2) does not compile with 4.0 3) does compile with 4.1 (and presumably also works) What I would find ideal under these circumstances is that the patch which made it work in 4.1, _if it's not too intrusive_, be included in 4.0, even if it doesn't fix a regression in the strict sense. If you will, I want the bar lowered for regressions to also include (case by case) being able to compile code which was incorrectly compiled before, is now not compiled at all, and for which a fix exists in 4.1. Basically I don't want defects in 3.x compilers to prevent backporting of bugfixes from 4.1 to 4.0, if possible. Ciao, Michael.