From: Vadim Zeitlin Date: Fri, 22 Jun 2007 15:11:27 +0000 (+0000) Subject: suppress Sun CC warnings about casting between C++ and extern C function pointers X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/7d10ec93c4b0c4db9d4450bc39c6c127bfab57fe suppress Sun CC warnings about casting between C++ and extern C function pointers git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/unix/appunix.cpp b/src/unix/appunix.cpp index 691a8a544e..0bca1979a9 100644 --- a/src/unix/appunix.cpp +++ b/src/unix/appunix.cpp @@ -52,13 +52,23 @@ void wxAppConsole::CheckSignal() } } +// the type of the signal handlers we use is "void(*)(int)" while the real +// signal handlers are extern "C" and so have incompatible type and at least +// Sun CC warns about it, so use explicit casts to suppress these warnings as +// they should be harmless +extern "C" +{ + typedef void (*SignalHandler_t)(int); +} + bool wxAppConsole::SetSignalHandler(int signal, SignalHandler handler) { - const bool install = handler != SIG_DFL && handler != SIG_IGN; + const bool install = (SignalHandler_t)handler != SIG_DFL && + (SignalHandler_t)handler != SIG_IGN; struct sigaction sa; memset(&sa, 0, sizeof(sa)); - sa.sa_handler = &wxAppConsole::HandleSignal; + sa.sa_handler = (SignalHandler_t)&wxAppConsole::HandleSignal; sa.sa_flags = SA_RESTART; int res = sigaction(signal, &sa, 0); if ( res != 0 )