This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Audit of some older C++ bug reports
On Mon, Oct 21, 2002 at 07:12:07PM -0500, Wolfgang Bangerth wrote:
>
> Hi there,
> OK, I thought 159 open (non-analyzed) C++ bug reports are too many. So I
> sifted through some of the older ones, and these are the results, grouped
> by finding.
Thank you for doing this!
As a note, when doing this sort of testing, it's useful to know
whether a bug exists in gcc 2.95 as well as 3.2 and HEAD. If a bug
didn't exist in 2.95, it is a regression, and therefore qualifies for
fixing in the 3.2.x series. (If a bug _does_ exist in 2.95, but was
fixed in 3.0 or 3.1, and came back in 3.2 and/or HEAD, it's also a
regression.)
> c++/641 (annoying warning with friends, templates, and const)
> Behavior still exists
-> analyzed
> c++/6579 (works infinitely long)
> Correct. CVS HEAD still seems to go into an inifinite loop on this
> code.
This is the same bug as the next one...
> c++/6579 (works infinitely long)
> Exists still in CVS HEAD. Interesting interaction between
> constructor and statement expressions. Should maybe be renamed into
> "Infinite loop with statement expressions in member initialization".
> Smaller testcase just posted.
-> analyzed. This is a regression from 2.95, so I've also marked it
high priority.
> c++/6718 (Boost1.28 run-time problem)
> Confirmed with CVS HEAD.
Ditto.
> c++/1940 (No option for turning off reporting of mismatched "{" "}")
> This one may have been fixed with the rewrite of the preprocessor
> some time ago. The report was against 2.96
Yes, it was; that warning is no longer issued ever. Closed.
> c++/3698 (improper handling of an extern declared inline function)
> I can reproduce this with the given compiler, but it seems to be
> fixed with gcc3.1 and 3.2. I don't have CVS head on the given
> platform (SPARC), but I don't see the problem on Linux with CVS,
> so it is probably safe to close this report.
For a bug like this, it usually suffices to configure CVS HEAD with
--target=<whatever>, which creates a cross compiler, and build
cc1(plus). Then run the binary against the test case and inspect the
assembly output.
I've done this for this bug report. The code generated is correct -
inlining doesn't happen, but I think that's the intended effect. Closed.
> c++/4424 (Template operator overloading using member functions...)
> Works for me.
And me also, with 3.2 and HEAD (as of a week ago). Closed.
> c++/4659 (Eroneous extra warning for -Woverloaded-virtual)
> The warning is warranted, since one of the functions is indeed
> hidden. Should be closed.
Leaving this for someone with a deeper understanding of C++.
> c++/5082 (test/bs.c:525: virtual array reg_n_info[833]: element 833 ...)
> This is a C bug and should thus be reclassified. However, I can
> compile the test case, both with 3.1 and 3.2. The report was against
> "gcc 3.1 20011203" which was a prerelease. I think it should be
> closed.
Not so fast. The internal consistency checks that triggered this bug
report, are disabled in official releases (for speed). I cannot
reproduce the bug with CVS HEAD. It needs to be verified with 3.2
compiled with --enable-checking given to configure.
I have reclassified it as a C bug as you suggested.
I've run out of time to go through these, so the rest will have to be
taken care of by someone else, sorry.
zw