Fix build on NetBSD: cast ptr to function to ptr to data
authorKamil Rytarowski <n54@gmx.com>
Tue, 2 Feb 2016 01:52:32 +0000 (02:52 +0100)
committerKamil Rytarowski <n54@gmx.com>
Tue, 2 Feb 2016 23:53:52 +0000 (00:53 +0100)
src/utilcode/delayloadhelpers.cpp
src/vm/jitinterface.h
src/vm/threadsuspend.cpp

index 2509cfd..631d0f3 100644 (file)
@@ -93,7 +93,7 @@ namespace DelayLoad
             HMODULE hMod = nullptr;
             IfFailRet(m_pModule->GetValue(&hMod));
 
-            LPVOID pvFunc = ::GetProcAddress(hMod, m_szFunctionName);
+            LPVOID pvFunc = reinterpret_cast<LPVOID>(::GetProcAddress(hMod, m_szFunctionName));
             hr = (pvFunc == nullptr) ? HRESULT_FROM_GetLastError() : S_OK;
             
             {   // Lock scope
@@ -112,4 +112,3 @@ namespace DelayLoad
         return m_hr;
     }
 }
-
index f01f57c..97dbd62 100644 (file)
@@ -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!
index c1ffaf9..55d31ff 100644 (file)
@@ -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<void*>(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<void*>(OnHijackObjectTripThread);
         }
         else if (type == MetaSig::RETBYREF)
         {
-            pvHijackAddr = OnHijackInteriorPointerTripThread;
+            pvHijackAddr = reinterpret_cast<void*>(OnHijackInteriorPointerTripThread);
         }
 #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
         else if (type == MetaSig::RETVALUETYPE)
         {
             pThread->SetHijackReturnTypeClass(pMT->GetClass());
-            pvHijackAddr = OnHijackStructInRegsTripThread;
+            pvHijackAddr = reinterpret_cast<void*>(OnHijackStructInRegsTripThread);
         }
 #endif // FEATURE_UNIX_AMD64_STRUCT_PASSING