35 lines
889 B
Fortran
35 lines
889 B
Fortran
! { dg-do compile }
|
|
! PR fortran/33917
|
|
!
|
|
! Depending, in which order the symbol tree
|
|
! was walked in resolve, gfortran resolved
|
|
! p6 before p4; thus there was no explicit
|
|
! interface available for p4 and an error
|
|
! was printed. (This is a variant of proc_decl_2.f90)
|
|
!
|
|
! Additionally, the following contrain was not honoured:
|
|
! "C1212 (R1215) [...] If name is declared by a procedure-declaration-stmt
|
|
! it shall be previously declared." ("name" = interface-name)
|
|
!
|
|
program s
|
|
implicit none
|
|
procedure() :: q2
|
|
procedure() :: q3
|
|
procedure() :: q5
|
|
procedure(sub) :: p4
|
|
procedure(p4) :: p6
|
|
contains
|
|
subroutine sub
|
|
end subroutine
|
|
end program s
|
|
|
|
subroutine test
|
|
implicit none
|
|
abstract interface
|
|
subroutine sub()
|
|
end subroutine sub
|
|
end interface
|
|
procedure(p4) :: p6 ! { dg-error "declared in a later PROCEDURE statement" }
|
|
procedure(sub) :: p4
|
|
end subroutine test
|