diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-07-10 16:28:48 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-07-10 16:28:48 +0200 |
commit | 89560a3c2c5046489930c3532e128fdc2f77e24e (patch) | |
tree | f05d79c0abe5daab16d680d32116db23b4ccf075 | |
parent | 53130f756045ccc520dc6ec8a6881dedfad8b46a (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/intrinsic.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/intrinsic_signal.f90 | 21 |
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 |