From c8df018ab7ffe635af08089a2605bf95516f5d93 Mon Sep 17 00:00:00 2001 From: Kamil Rytarowski Date: Tue, 2 Feb 2016 02:52:32 +0100 Subject: [PATCH] Fix build on NetBSD: cast ptr to function to ptr to data --- src/utilcode/delayloadhelpers.cpp | 3 +-- src/vm/jitinterface.h | 2 +- src/vm/threadsuspend.cpp | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/utilcode/delayloadhelpers.cpp b/src/utilcode/delayloadhelpers.cpp index 2509cfd3f8..631d0f327c 100644 --- a/src/utilcode/delayloadhelpers.cpp +++ b/src/utilcode/delayloadhelpers.cpp @@ -93,7 +93,7 @@ namespace DelayLoad HMODULE hMod = nullptr; IfFailRet(m_pModule->GetValue(&hMod)); - LPVOID pvFunc = ::GetProcAddress(hMod, m_szFunctionName); + LPVOID pvFunc = reinterpret_cast(::GetProcAddress(hMod, m_szFunctionName)); hr = (pvFunc == nullptr) ? HRESULT_FROM_GetLastError() : S_OK; { // Lock scope @@ -112,4 +112,3 @@ namespace DelayLoad return m_hr; } } - diff --git a/src/vm/jitinterface.h b/src/vm/jitinterface.h index f01f57c90c..97dbd6235b 100644 --- a/src/vm/jitinterface.h +++ b/src/vm/jitinterface.h @@ -1546,7 +1546,7 @@ extern "C" #endif GARY_DECL(VMHELPDEF, hlpDynamicFuncTable, DYNAMIC_CORINFO_HELP_COUNT); -#define SetJitHelperFunction(ftnNum, pFunc) _SetJitHelperFunction(DYNAMIC_##ftnNum, pFunc) +#define SetJitHelperFunction(ftnNum, pFunc) _SetJitHelperFunction(DYNAMIC_##ftnNum, (void*)(pFunc)) void _SetJitHelperFunction(DynamicCorInfoHelpFunc ftnNum, void * pFunc); #ifdef ENABLE_FAST_GCPOLL_HELPER //These should only be called from ThreadStore::TrapReturningThreads! diff --git a/src/vm/threadsuspend.cpp b/src/vm/threadsuspend.cpp index c1ffaf9246..55d31fff24 100644 --- a/src/vm/threadsuspend.cpp +++ b/src/vm/threadsuspend.cpp @@ -8445,23 +8445,23 @@ void PALAPI HandleGCSuspensionForInterruptedThread(CONTEXT *interruptedContext) ClrFlsValueSwitch threadStackWalking(TlsIdx_StackWalkerWalkingThread, pThread); // Hijack the return address to point to the appropriate routine based on the method's return type. - void *pvHijackAddr = OnHijackScalarTripThread; + void *pvHijackAddr = reinterpret_cast(OnHijackScalarTripThread); MethodDesc *pMethodDesc = codeInfo.GetMethodDesc(); MethodTable* pMT = NULL; MetaSig::RETURNTYPE type = pMethodDesc->ReturnsObject(INDEBUG_COMMA(false) &pMT); if (type == MetaSig::RETOBJ) { - pvHijackAddr = OnHijackObjectTripThread; + pvHijackAddr = reinterpret_cast(OnHijackObjectTripThread); } else if (type == MetaSig::RETBYREF) { - pvHijackAddr = OnHijackInteriorPointerTripThread; + pvHijackAddr = reinterpret_cast(OnHijackInteriorPointerTripThread); } #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING else if (type == MetaSig::RETVALUETYPE) { pThread->SetHijackReturnTypeClass(pMT->GetClass()); - pvHijackAddr = OnHijackStructInRegsTripThread; + pvHijackAddr = reinterpret_cast(OnHijackStructInRegsTripThread); } #endif // FEATURE_UNIX_AMD64_STRUCT_PASSING -- 2.34.1