[compiler-rt] r215436 - [ASan] Use more appropriate return types for strlen/wcslen to avoid MSVC warnings

Timur Iskhodzhanov timurrrr at google.com
Thu Aug 21 13:15:03 PDT 2014


2014-08-21 20:22 GMT+04:00 Alexander Potapenko <glider at google.com>:
> Done in r216184.
>
> On Thu, Aug 21, 2014 at 8:16 PM, Alexander Potapenko <glider at google.com> wrote:
>> "unsigned" is not an appropriate replacement for uptr here, as size_t
>> is pointer-sized (at least on Linux and OSX)
>> I'm going to replace this with SIZE_T which is already used in similar cases.

MSVC is grumpy :(

lib\asan\asan_interceptors.cc(553) : warning C4391: 'SIZE_T
strlen(const char *)' : incorrect return type for intrinsic function,
expected 'unsigned int'
lib\asan\asan_interceptors.cc(568) : warning C4391: 'SIZE_T
wcslen(const wchar_t *)' : incorrect return type for intrinsic
function, expected 'unsigned int'

>> On Tue, Aug 12, 2014 at 3:02 PM, Timur Iskhodzhanov <timurrrr at google.com> wrote:
>>> Author: timurrrr
>>> Date: Tue Aug 12 06:02:53 2014
>>> New Revision: 215436
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=215436&view=rev
>>> Log:
>>> [ASan] Use more appropriate return types for strlen/wcslen to avoid MSVC warnings
>>>
>>> Modified:
>>>     compiler-rt/trunk/lib/asan/asan_interceptors.cc
>>>     compiler-rt/trunk/lib/asan/asan_interceptors.h
>>>
>>> Modified: compiler-rt/trunk/lib/asan/asan_interceptors.cc
>>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.cc?rev=215436&r1=215435&r2=215436&view=diff
>>> ==============================================================================
>>> --- compiler-rt/trunk/lib/asan/asan_interceptors.cc (original)
>>> +++ compiler-rt/trunk/lib/asan/asan_interceptors.cc Tue Aug 12 06:02:53 2014
>>> @@ -550,7 +550,7 @@ INTERCEPTOR(char*, strdup, const char *s
>>>  }
>>>  #endif
>>>
>>> -INTERCEPTOR(uptr, strlen, const char *s) {
>>> +INTERCEPTOR(unsigned, strlen, const char *s) {
>>>    if (UNLIKELY(!asan_inited)) return internal_strlen(s);
>>>    // strlen is called from malloc_default_purgeable_zone()
>>>    // in __asan::ReplaceSystemAlloc() on Mac.
>>> @@ -558,15 +558,15 @@ INTERCEPTOR(uptr, strlen, const char *s)
>>>      return REAL(strlen)(s);
>>>    }
>>>    ENSURE_ASAN_INITED();
>>> -  uptr length = REAL(strlen)(s);
>>> +  unsigned length = REAL(strlen)(s);
>>>    if (flags()->replace_str) {
>>>      ASAN_READ_RANGE(s, length + 1);
>>>    }
>>>    return length;
>>>  }
>>>
>>> -INTERCEPTOR(uptr, wcslen, const wchar_t *s) {
>>> -  uptr length = REAL(wcslen)(s);
>>> +INTERCEPTOR(unsigned, wcslen, const wchar_t *s) {
>>> +  unsigned length = REAL(wcslen)(s);
>>>    if (!asan_init_is_running) {
>>>      ENSURE_ASAN_INITED();
>>>      ASAN_READ_RANGE(s, (length + 1) * sizeof(wchar_t));
>>>
>>> Modified: compiler-rt/trunk/lib/asan/asan_interceptors.h
>>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.h?rev=215436&r1=215435&r2=215436&view=diff
>>> ==============================================================================
>>> --- compiler-rt/trunk/lib/asan/asan_interceptors.h (original)
>>> +++ compiler-rt/trunk/lib/asan/asan_interceptors.h Tue Aug 12 06:02:53 2014
>>> @@ -86,7 +86,7 @@ DECLARE_REAL(int, memcmp, const void *a1
>>>  DECLARE_REAL(void*, memcpy, void *to, const void *from, uptr size)
>>>  DECLARE_REAL(void*, memset, void *block, int c, uptr size)
>>>  DECLARE_REAL(char*, strchr, const char *str, int c)
>>> -DECLARE_REAL(uptr, strlen, const char *s)
>>> +DECLARE_REAL(unsigned, strlen, const char *s)
>>>  DECLARE_REAL(char*, strncpy, char *to, const char *from, uptr size)
>>>  DECLARE_REAL(uptr, strnlen, const char *s, uptr maxlen)
>>>  DECLARE_REAL(char*, strstr, const char *s1, const char *s2)
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>>
>> --
>> Alexander Potapenko
>> Software Engineer
>> Google Moscow
>
>
>
> --
> Alexander Potapenko
> Software Engineer
> Google Moscow



More information about the llvm-commits mailing list