It seems you are missing interceptors for wcstof, wcstod, and wcstold as
well.

Could this be responsible for PR21579 as well?
http://llvm.org/bugs/show_bug.cgi?id=21579

/Eric

On Tue, Nov 18, 2014 at 2:44 AM, Evgeniy Stepanov <[email protected]>
wrote:

> We are missing interceptors for: wcstol, wcstoul, wcstoll, wcstoull.
>
> On Mon Nov 17 2014 at 11:02:13 PM Kostya Serebryany <[email protected]>
> wrote:
>
>> if msan does not see what's goign on inside libc we need to teach it --
>> it already has a bunch of libc interceptors, but clearly not all.
>> Do you know what libc function is called here?
>> Or how to reproduce the reports you've been seeing?
>>
>> On Fri, Nov 14, 2014 at 2:23 PM, Eric Fiselier <[email protected]> wrote:
>>
>>> Author: ericwf
>>> Date: Fri Nov 14 16:23:57 2014
>>> New Revision: 222052
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=222052&view=rev
>>> Log:
>>> Initialize pointer in string conversion helpers to prevent MSAN
>>> diagnostic.
>>>
>>> Since the initialization of the pointer happens across the libc library
>>> boundry
>>> MSAN will not know the pointer was initialized. This fixes MSAN failures
>>> in
>>> test/strings/string.conversions.
>>>
>>> Modified:
>>>     libcxx/trunk/src/string.cpp
>>>
>>> Modified: libcxx/trunk/src/string.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/string.cpp?rev=222052&r1=222051&r2=222052&view=diff
>>>
>>> ==============================================================================
>>> --- libcxx/trunk/src/string.cpp (original)
>>> +++ libcxx/trunk/src/string.cpp Fri Nov 14 16:23:57 2014
>>> @@ -63,7 +63,7 @@ inline
>>>  V
>>>  as_integer_helper(const string& func, const S& str, size_t* idx, int
>>> base, F f)
>>>  {
>>> -    typename S::value_type* ptr;
>>> +    typename S::value_type* ptr = nullptr;
>>>      const typename S::value_type* const p = str.c_str();
>>>      typename remove_reference<decltype(errno)>::type errno_save = errno;
>>>      errno = 0;
>>> @@ -180,7 +180,7 @@ inline
>>>  V
>>>  as_float_helper(const string& func, const S& str, size_t* idx, F f )
>>>  {
>>> -    typename S::value_type* ptr;
>>> +    typename S::value_type* ptr = nullptr;
>>>      const typename S::value_type* const p = str.c_str();
>>>      typename remove_reference<decltype(errno)>::type errno_save = errno;
>>>      errno = 0;
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> [email protected]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>
>>
>>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to