i found a corner case, definitely odd but legal, in basic_string::_M_disjunct. consider the following:
string s1("abcd"); string s2(s1); // make it shared s1.append(s.data() - 1, 5); _M_disjunct should return true but, because it does not check the length, fails. i created a patch for this but see no where to attach it. -- Summary: basic_string::_M_disjunct corner case Product: gcc Version: 4.3.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jkt at mailsnare dot net GCC host triplet: x86_64-suse-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40779