https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77525
Bug ID: 77525
Summary: wrong requirement of an upper bound for an array
argument
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: francois.jacq at irsn dot fr
Target Milestone: ---
The following source file does not compile correctly with gfortran 5.3.0 and
5.3.1
This is a regression because gfortran 4.9.2 is OK
coul@b10p5001:~/test$ gfortran -c mdb_proc.f90
mdb_proc.f90:41:19:
call my_proc%f(tx,r)
Error: The upper bound in the last dimension must appear in the reference to
the assumed size array 'tx' at (1)
Source file :
module mdb_proc
! module managing external procedures to compute specific models
implicit none
private
save
public :: listproc,mdb_proc_t
abstract interface ! all possible signatures of user procedures
subroutine p(tx,r)
real,intent(in) :: tx(*)
real,intent(out) :: r
end subroutine
end interface
type mdb_proc_t
character(32) :: cname
integer :: mode=0
procedure(p) ,pointer,nopass :: f
end type
integer,parameter :: nprocmax=2048
type(mdb_proc_t),target :: listproc(0:nprocmax-1)
end module
subroutine test(tx,r)
use mdb_proc
implicit none
real,intent(in) :: tx(*)
real,intent(out) :: r
type(mdb_proc_t),pointer :: my_proc
my_proc => listproc(5)
call my_proc%f(tx,r)
end subroutine