]> git.saurik.com Git - wxWidgets.git/commitdiff
suppress Sun CC warnings about casting between C++ and extern C function pointers
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 22 Jun 2007 15:11:27 +0000 (15:11 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 22 Jun 2007 15:11:27 +0000 (15:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/unix/appunix.cpp

index 691a8a544e04daab546d926dea45781f3c69228d..0bca1979a9a7003ee0cde098c62d1bae659f55cf 100644 (file)
@@ -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 )