Index: lldb/trunk/source/Core/PluginManager.cpp =================================================================== --- lldb/trunk/source/Core/PluginManager.cpp +++ lldb/trunk/source/Core/PluginManager.cpp @@ -79,6 +79,12 @@ plugin_map[plugin_file_spec] = plugin_info; } +template +static FPtrTy +CastToFPtr (void *VPtr) +{ + return reinterpret_cast(reinterpret_cast(VPtr)); +} static FileSpec::EnumerateDirectoryResult LoadPluginCallback @@ -115,7 +121,11 @@ if (plugin_info.plugin_handle) { bool success = false; - plugin_info.plugin_init_callback = (PluginInitCallback)Host::DynamicLibraryGetSymbol (plugin_info.plugin_handle, "LLDBPluginInitialize", error); + plugin_info.plugin_init_callback = + CastToFPtr( + Host::DynamicLibraryGetSymbol(plugin_info.plugin_handle, + "LLDBPluginInitialize", + error)); if (plugin_info.plugin_init_callback) { // Call the plug-in "bool LLDBPluginInitialize(void)" function @@ -125,7 +135,11 @@ if (success) { // It is ok for the "LLDBPluginTerminate" symbol to be NULL - plugin_info.plugin_term_callback = (PluginTermCallback)Host::DynamicLibraryGetSymbol (plugin_info.plugin_handle, "LLDBPluginTerminate", error); + plugin_info.plugin_term_callback = + CastToFPtr( + Host::DynamicLibraryGetSymbol( + plugin_info.plugin_handle, "LLDBPluginTerminate", + error)); } else {