diff options
author | Douglas Katzman <dougk@google.com> | 2015-06-19 17:21:02 +0000 |
---|---|---|
committer | Douglas Katzman <dougk@google.com> | 2015-06-19 17:21:02 +0000 |
commit | f3a3b5d6e0ccac7dc93b0038845b7eb045260345 (patch) | |
tree | d946cda1f2377918e4a7fa3fa40ef8aead2e846f | |
parent | 79336aa3a47383e8cdc71cfb1f11e74f3d63533b (diff) | |
download | bcm5719-llvm-f3a3b5d6e0ccac7dc93b0038845b7eb045260345.tar.gz bcm5719-llvm-f3a3b5d6e0ccac7dc93b0038845b7eb045260345.zip |
Avoid warning about inability to cast from ptr-to-obj to ptr-to-fun.
Use POSIX.1-2003 Technical Corrigendum 1 suggested workaround.
llvm-svn: 240140
-rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp index 2a5e4f83228..044eee43c9e 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp @@ -41,8 +41,8 @@ RTDyldMemoryManager::~RTDyldMemoryManager() {} #endif #if HAVE_EHTABLE_SUPPORT -extern "C" void __register_frame(void*); -extern "C" void __deregister_frame(void*); +extern "C" void __register_frame(void *); +extern "C" void __deregister_frame(void *); #else // The building compiler does not have __(de)register_frame but // it may be found at runtime in a dynamically-loaded library. @@ -50,28 +50,28 @@ extern "C" void __deregister_frame(void*); // but using the MingW runtime. void __register_frame(void *p) { static bool Searched = false; - static void *rf = 0; + static void((*rf)(void *)) = 0; if (!Searched) { Searched = true; - rf = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol( - "__register_frame"); + *(void **)&rf = + llvm::sys::DynamicLibrary::SearchForAddressOfSymbol("__register_frame"); } if (rf) - ((void (*)(void *))rf)(p); + rf(p); } void __deregister_frame(void *p) { static bool Searched = false; - static void *df = 0; + static void((*df)(void *)) = 0; if (!Searched) { Searched = true; - df = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol( - "__deregister_frame"); + *(void **)&df = llvm::sys::DynamicLibrary::SearchForAddressOfSymbol( + "__deregister_frame"); } if (df) - ((void (*)(void *))df)(p); + df(p); } #endif |