Fortran: avoid NULL pointer dereference on missing or bad dummy arguments
gcc/fortran/ChangeLog: PR fortran/103609 * symbol.c (gfc_sym_get_dummy_args): Catch NULL pointer dereference. gcc/testsuite/ChangeLog: PR fortran/103609 * gfortran.dg/pr103609.f90: New test.
This commit is contained in:
parent
7add7f7bb3
commit
b77968a705
@ -5240,6 +5240,9 @@ gfc_sym_get_dummy_args (gfc_symbol *sym)
|
||||
{
|
||||
gfc_formal_arglist *dummies;
|
||||
|
||||
if (sym == NULL)
|
||||
return NULL;
|
||||
|
||||
dummies = sym->formal;
|
||||
if (dummies == NULL && sym->ts.interface != NULL)
|
||||
dummies = sym->ts.interface->formal;
|
||||
|
15
gcc/testsuite/gfortran.dg/pr103609.f90
Normal file
15
gcc/testsuite/gfortran.dg/pr103609.f90
Normal file
@ -0,0 +1,15 @@
|
||||
! { dg-do compile }
|
||||
! PR fortran/103609 - ICE in gfc_sym_get_dummy_args
|
||||
! Contributed by G.Steinmetz
|
||||
|
||||
program p
|
||||
implicit none
|
||||
integer :: i
|
||||
do i = 1, 2
|
||||
call s
|
||||
end do
|
||||
contains
|
||||
subroutine s
|
||||
call sub(x) ! { dg-error "has no IMPLICIT type" }
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user