[llvm-commits] bug in libc++'s std::string::find_first_not_of

Klaas de Vries klaas at klaasgaaf.nl
Tue Jan 1 06:41:36 PST 2013


On 12/31/2012 09:11 PM, Howard Hinnant wrote:
> 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
>
Supplying a patch for CREDITS.TXT

Regards,
Klaas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: credits.diff
Type: text/x-patch
Size: 362 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130101/21f2d577/attachment.bin>


More information about the llvm-commits mailing list