http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54392
--- Comment #4 from Michael Haubenwallner <michael.haubenwallner at salomon dot at> 2012-08-29 10:50:22 UTC --- (In reply to comment #0) Extending the testcase shows even more bad behavior in 4.4.3 and earlier: #include <string> #include <cassert> int main() { std::string s1, s2; s1.assign(s2.c_str(), 1); assert( s1.size() == 1 ); std::string s3; assert( s3.size() == 0 ); // up to gcc-4.4.3 fail here }