[Msan] Fix the iconv.cc test to build and pass on FreeBSD

Differential Revision: http://reviews.llvm.org/D9252

llvm-svn: 235799
This commit is contained in:
Viktor Kutuzov 2015-04-25 11:07:05 +00:00
parent 0568283e69
commit 78206c5b7e
3 changed files with 7 additions and 1 deletions

View File

@ -47,6 +47,7 @@
#define pthread_setname_np pthread_set_name_np
#define inet_aton __inet_aton
#define inet_pton __inet_pton
#define iconv __bsd_iconv
#endif
#ifndef COMMON_INTERCEPTOR_INITIALIZE_RANGE

View File

@ -204,7 +204,7 @@
#define SANITIZER_INTERCEPT_LGAMMAL_R SI_LINUX_NOT_ANDROID
#define SANITIZER_INTERCEPT_DRAND48_R SI_LINUX_NOT_ANDROID
#define SANITIZER_INTERCEPT_RAND_R SI_MAC || SI_LINUX_NOT_ANDROID
#define SANITIZER_INTERCEPT_ICONV SI_LINUX_NOT_ANDROID
#define SANITIZER_INTERCEPT_ICONV SI_FREEBSD || SI_LINUX_NOT_ANDROID
#define SANITIZER_INTERCEPT_TIMES SI_NOT_WINDOWS
// FIXME: getline seems to be available on OSX 10.7

View File

@ -15,7 +15,12 @@ int main(void) {
char inbuf_[100];
strcpy(inbuf_, "sample text");
char outbuf_[100];
#if defined(__FreeBSD__)
// FreeBSD's iconv() expects the 2nd argument be of type 'const char**'.
const char *inbuf = inbuf_;
#else
char *inbuf = inbuf_;
#endif
char *outbuf = outbuf_;
size_t inbytesleft = strlen(inbuf_);
size_t outbytesleft = sizeof(outbuf_);