Fortran : ICE in gfc_validate_kind PR95586
Report syntax error for invalid letter-spec in IMPLICIT statements for derived types and not an ICE. Original patch by Steve Kargl. Added test cases based on those provided by G. Steinmetz in the PR. 2020-06-23 Steven G. Kargl <kargl@gcc.gnu.org> gcc/fortran/ PR fortran/95586 * decl.c (gfc_match_implicit): Only perform else branch if the type spect is not BT_DERIVED. 2020-06-23 Mark Eggleston <markeggleston@gcc.gnu.org> gcc/testsuite/ PR fortran/95586 * gfortran.dg/pr95586_1.f90: New test. * gfortran.dg/pr95586_2.f90: New test.
This commit is contained in:
parent
605a8f3bbc
commit
384aa89025
@ -4827,7 +4827,7 @@ gfc_match_implicit (void)
|
||||
/* Last chance -- check <TYPE> <SELECTOR> (<RANGE>). */
|
||||
if (ts.type == BT_CHARACTER)
|
||||
m = gfc_match_char_spec (&ts);
|
||||
else
|
||||
else if (ts.type != BT_DERIVED)
|
||||
{
|
||||
m = gfc_match_kind_spec (&ts, false);
|
||||
if (m == MATCH_NO)
|
||||
|
9
gcc/testsuite/gfortran.dg/pr95586_1.f90
Normal file
9
gcc/testsuite/gfortran.dg/pr95586_1.f90
Normal file
@ -0,0 +1,9 @@
|
||||
! { dg-do compile }
|
||||
!
|
||||
|
||||
program test
|
||||
implicit type(t) (1) ! { dg-error "Syntax error" }
|
||||
type t
|
||||
end type
|
||||
end program
|
||||
|
11
gcc/testsuite/gfortran.dg/pr95586_2.f90
Normal file
11
gcc/testsuite/gfortran.dg/pr95586_2.f90
Normal file
@ -0,0 +1,11 @@
|
||||
! { dg-do compile }
|
||||
!
|
||||
|
||||
program test
|
||||
integer, parameter :: n1 = 1
|
||||
implicit type(t) (n1) ! { dg-error "Syntax error" }
|
||||
type t
|
||||
end type
|
||||
end program
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user