[project @ 1999-08-04 17:03:20 by panne]
[ghc-hetmet.git] / ghc / lib / posix / cbits / signal.c
index 9811306..e4d7112 100644 (file)
@@ -7,21 +7,23 @@
  * and it is not posible to do the inline (_casm_). These functions 
  * aren't inline because it causes gcc to run out of registers on x86.
  *
+ * Ugly casting added by SUP to avoid C compiler warnings about
+ * incompatible pointer types.
  */
 
 #include "Rts.h"
 #include "libposix.h"
 
 void
-stg_sigaddset(sigset_t *newset, sigset_t *oldset, int signum)
+stg_sigaddset(StgByteArray newset, StgByteArray oldset, int signum)
 {
-       *newset = *oldset;
-       sigaddset(newset, signum);
+       *((sigset_t *)newset) = *((sigset_t *)oldset);
+       sigaddset((sigset_t *)newset, signum);
 }
 
 void
-stg_sigdelset(sigset_t *newset, sigset_t *oldset, int signum)
+stg_sigdelset(StgByteArray newset, StgByteArray oldset, int signum)
 {
-       *newset = *oldset;
-       sigdelset(newset, signum);
+       *((sigset_t *)newset) = *((sigset_t *)oldset);
+       sigdelset((sigset_t *)newset, signum);
 }