[llvm-commits] bug in libc++'s std::string::find_first_not_of
Klaas de Vries
klaas at klaasgaaf.nl
Mon Dec 31 06:06:55 PST 2012
Hi,
It seems that the libc++ implementation of
std::string::find_first_not_of - specifically the one taking a single
character as its first argument - does not handle the case where the
string contains only the given character (i.e. where it should return
string::npos).
A simple program demonstrating this:
int main()
{
string test("--");
string::size_type i = test.find_first_not_of('-');
cout << (i == string::npos ? "okay" : "not okay") << '\n';
}
The cause seems to be a typo in the for-loop in the implementation where
a check for the inequality will return true for the first character
beyond the tested string (a bad thing).
Attached is what I believe to be a fix, and an updated test case.
Regards,
Klaas de Vries
-------------- next part --------------
A non-text attachment was scrubbed...
Name: find_first_not_of.diff
Type: text/x-patch
Size: 1170 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121231/bbf29e13/attachment.bin>
More information about the llvm-commits
mailing list