The following is legal (see
<[EMAIL PROTECTED]>), but we segfault
on execution:
$ cat size.f90
module foo
contains
subroutine checkv(ires,a1,opt1)
integer :: a1(:,:)
integer, optional :: opt1
ires = size (a1, dim=opt1)
end subroutine checkv
end module foo
program main
use foo
implicit none
integer :: a(2,3)
integer :: ires
call checkv (ires, a)
print *,ires
call checkv (ires, a, 1)
print *,ires
end program main
$ gfortran size.f90
$ ./a.out
Segmentation fault
--
Summary: optional argument passed on to size(...,dim=)
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30865