2011-07-09 Tobias Burnus <burnus@net-b.de>
PR fortran/49690
* intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
2011-07-09 Tobias Burnus <burnus@net-b.de>
PR fortran/49690
* gfortran.dg/intrinsic_signal.f90: New.
@@ -2594,7 +2594,7 @@ add_functions (void)
add_sym_2 ("signal", GFC_ISYM_SIGNAL, CLASS_IMPURE, ACTUAL_NO, BT_INTEGER,
di, GFC_STD_GNU, gfc_check_signal, NULL, gfc_resolve_signal,
- num, BT_INTEGER, di, REQUIRED, han, BT_UNKNOWN, 0, REQUIRED);
+ num, BT_INTEGER, di, REQUIRED, han, BT_VOID, 0, REQUIRED);
make_generic ("signal", GFC_ISYM_SIGNAL, GFC_STD_GNU);
@@ -0,0 +1,21 @@
+! { dg-do compile }
+!
+! PR fortran/49690
+!
+! Reduced test case, based on the one of Debian bug #631204
+!
+
+subroutine ctrlc_ast
+ common /xinterrupt/ interrupted
+ logical interrupted
+ interrupted = .true.
+end subroutine ctrlc_ast
+
+subroutine set_ctrl_c(ctrlc_ast)
+ external ctrlc_ast
+ intrinsic signal
+ integer old_handle
+ common /xinterrupt/ interrupted
+ logical interrupted
+ old_handler = signal(2, ctrlc_ast)
+end subroutine set_ctrl_c