! { dg-do compile } ! { dg-options "-fcheck=bounds" } ! ! PR 42804: ICE with -fcheck=bounds and type bound procedure call on array element ! ! Contributed by Ian Harvey MODULE ModA IMPLICIT NONE TYPE, PUBLIC :: A PROCEDURE(a_proc),pointer :: Proc END TYPE A CONTAINS SUBROUTINE a_proc(this, stat) CLASS(A), INTENT(INOUT) :: this INTEGER, INTENT(OUT) :: stat WRITE (*, *) 'a_proc' stat = 0 END SUBROUTINE a_proc END MODULE ModA PROGRAM ProgA USE ModA IMPLICIT NONE INTEGER :: ierr INTEGER :: i TYPE(A), ALLOCATABLE :: arr(:) ALLOCATE(arr(2)) DO i = 1, 2 arr(i)%proc => a_proc CALL arr(i)%Proc(ierr) END DO END PROGRAM ProgA