! { 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