Index: lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc =================================================================== --- lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc +++ lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc @@ -76,7 +76,8 @@ // malloc and thread-local storage, which is not a good thing to do during // symbolication. static void InitializeSwiftDemangler() { - swift_demangle_f = (swift_demangle_ft)dlsym(RTLD_DEFAULT, "swift_demangle"); + uint64_t ptr = (uint64_t) dlsym(RTLD_DEFAULT, "swift_demangle"); + swift_demangle_f = (swift_demangle_ft) ptr; } // Attempts to demangle a Swift name. The demangler will return nullptr if a Index: lib/stats/stats_client.cc =================================================================== --- lib/stats/stats_client.cc +++ lib/stats/stats_client.cc @@ -31,11 +31,14 @@ namespace { -void *LookupSymbolFromMain(const char *name) { +typedef void (*void_fnptr)(); + +void_fnptr LookupSymbolFromMain(const char *name) { #ifdef _WIN32 - return reinterpret_cast(GetProcAddress(GetModuleHandle(0), name)); + return (void_fnptr) GetProcAddress(GetModuleHandle(0), name); #else - return dlsym(RTLD_DEFAULT, name); + uint64_t ptr = (uint64_t) dlsym(RTLD_DEFAULT, name); + return (void_fnptr) ptr; #endif }