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.