[cfe-commits] [llvm-commits] bug in libc++'s std::string::find_first_not_of
Howard Hinnant
hhinnant at apple.com
Mon Dec 31 12:11:50 PST 2012
On Dec 31, 2012, at 9:06 AM, Klaas de Vries <klaas at klaasgaaf.nl> wrote:
> 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
Thanks much Klaas, committed revision 171321.
Could you supply a patch for CREDITS.TXT as well?
Howard
More information about the cfe-commits
mailing list