aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2011-07-10 16:28:48 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2011-07-10 16:28:48 +0200
commit89560a3c2c5046489930c3532e128fdc2f77e24e (patch)
treef05d79c0abe5daab16d680d32116db23b4ccf075
parent53130f756045ccc520dc6ec8a6881dedfad8b46a (diff)
downloadgcc-89560a3c2c5046489930c3532e128fdc2f77e24e.zip
gcc-89560a3c2c5046489930c3532e128fdc2f77e24e.tar.gz
gcc-89560a3c2c5046489930c3532e128fdc2f77e24e.tar.bz2
re PR fortran/49690 (ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1019)
2011-07-10 Tobias Burnus <burnus@net-b.de> PR fortran/49690 * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of * SIGNAL. 2011-07-10 Tobias Burnus <burnus@net-b.de> PR fortran/49690 * gfortran.dg/intrinsic_signal.f90: New. From-SVN: r176121
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/intrinsic.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/intrinsic_signal.f9021
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 484315f..2f0b508 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/49690
+ * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
+
2011-07-09 Uros Bizjak <ubizjak@gmail.com>
PR fortran/48926
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index a72da91..5946ddd 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -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);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cfc09f0..edeffaa 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/49690
+ * gfortran.dg/intrinsic_signal.f90: New.
+
2011-07-09 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/regress/regress6.C: New.
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_signal.f90 b/gcc/testsuite/gfortran.dg/intrinsic_signal.f90
new file mode 100644
index 0000000..cb57c95
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/intrinsic_signal.f90
@@ -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