On Sun, Sep 14, 2003 at 01:37:40AM -0500, Kevin Puetz wrote: > Package: g++-3.3 > Version: 1:3.3.2-0pre3 > Severity: grave > Tags: security > Justification: renders package unusable > > 3.3.2-0pre3 introduces a very serious miscompilation when inline functions > are in the lvalue of conditional expressions (at least, I think that this is > the trigger condition). > > It was introduced sometime between 3.3.2-0pre2 (2003/08/31) and 3.3.2-0pre3 > (2003/09/08). > It appears to generally generate an infinite loop in which it repeatedly > evaluates the inlined function, though I also observed it to manifest in > repeated, but terminating evaluation (in which it calculated the left-hand > expression two or more times, butr then did perform the assignment). > > This will break most users of the QT template library container classes (and > thus KDE) - probably most other C++ applications if my guess as to the nature > of the bug is correct. I discovered it manifesting in the form of my > locally-built kbuildsycoca, qt-assistant, and qt-linguist hanging partway > through their startups. Chris Cheney (KDE maintainer) is also able to > reproduce the behavior in my provided testcase, though his KDE/QT debian have > not been rebuilt since 3.3.2-0pre3 was installed. > > A minimal testcase derived from the QListView::addColumn method (in which I > first observed this problem) is available at > http://puetzk.org/tmp/testcast.tgz. If compiled with 3.3.2-0pre2 it will run > and exit, with 3.3.2-0pre3 it hangs with 100% cpu usage. It will also run in > 3.2.3-0pre3 as long as -finline is disabled. I was unable to isolate a small > example for the behavior in which it executed more than once the lvalue > function (qux) more than once, but not endlessly, though I occasionally saw > this behavior as I worked to minimize the testcase. I believe both symptoms > are related to the same underlying cause.
Reproduced. The bug occurs between the 00.rtl and 01.sibling dumps (????). Let me built a couple of CVS gccs to test. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer