Audit of some older C++ bug reports

Zack Weinberg zack@codesourcery.com
Mon Oct 21 17:52:00 GMT 2002


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



More information about the Gcc-bugs mailing list