Description of problem: The atomic ops in bits/atomicity.h of libstdc++-devel on x86_64 include broken inline assembly like this: xadd{l} {%0,%1|%1,%0} This was also a problem on the RHEL 2.9.5 preview, but seems to have been fixed in RHEL 3. Version-Release number of selected component (if applicable): libstdc++-devel-3.3.2-1 How reproducible: Any C++ code that uses atomicity.h fails to compile, for example basic_string and the IO streams stuff. In other words, anything that uses STL will break. Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Can you expand on why do you think this is broken assembly and what exactly doesn't work? It works for me just fine and there is nothing broken on it AFAICS.
I had an easy test case to reproduce this, but I've mislaid it. Argh. Keep this open a wee bit longer, and I'll dig it up.
Compile this with -O1, gives you the asm errors: g++ -O1 -c test.cc #include <string> using namespace std; void f () { string s; s += ""; } I tested this on Fedora Core 2 test3 x86_64
Pushed upstream to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17856