re PR fortran/30947 (intrinsic: ALARM)
authorDaniel Franke <franke.daniel@gmail.com>
Thu, 8 Mar 2007 21:46:16 +0000 (16:46 -0500)
committerDaniel Franke <dfranke@gcc.gnu.org>
Thu, 8 Mar 2007 21:46:16 +0000 (16:46 -0500)
2007-03-08  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/30947
        * intrinsics/signal.c (alarm_sub_int): Avoid SEGFAULT with
        integer arguments.

From-SVN: r122716

libgfortran/ChangeLog
libgfortran/intrinsics/signal.c

index ad71a7e6b2052bde1b6c21dfb8e67f245ec7f266..889a70d5fc8ddddaf44ed9c4d21660097b0e5c89 100644 (file)
@@ -1,3 +1,9 @@
+2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/30947
+       * intrinsics/signal.c (alarm_sub_int): Avoid SEGFAULT with 
+       integer arguments.
+
 2007-03-04  Thomas Koenig  <Thomas.Koenig@online.de>
 
        PR libfortran/30981
index e912c90780eb7729297ad468f7f9df360b69aefa..2c2f38d2969fd3af9ae63c08d5a0e97842bbe3db 100644 (file)
@@ -170,14 +170,14 @@ alarm_sub_int (int *seconds, int *handler, int *status)
 #if defined (SIGALRM) && defined (HAVE_ALARM) && defined (HAVE_SIGNAL)
   if (status != NULL)
     {
-      if (signal (SIGALRM, (void (*)(int)) handler) == SIG_ERR)
+      if (signal (SIGALRM, (void (*)(int)) *handler) == SIG_ERR)
        *status = -1;
       else
        *status = alarm (*seconds);
     }
   else
     {
-      signal (SIGALRM, (void (*)(int)) handler);
+      signal (SIGALRM, (void (*)(int)) *handler);
       alarm (*seconds);
     }
 #else