1! { dg-do compile } 2! { dg-options "-fcheck=bounds" } 3! 4! PR 42804: ICE with -fcheck=bounds and type bound procedure call on array element 5! 6! Contributed by Ian Harvey <ian_harvey@bigpond.com> 7 8MODULE ModA 9 IMPLICIT NONE 10 TYPE, PUBLIC :: A 11 PROCEDURE(a_proc),pointer :: Proc 12 END TYPE A 13CONTAINS 14 SUBROUTINE a_proc(this, stat) 15 CLASS(A), INTENT(INOUT) :: this 16 INTEGER, INTENT(OUT) :: stat 17 WRITE (*, *) 'a_proc' 18 stat = 0 19 END SUBROUTINE a_proc 20END MODULE ModA 21 22PROGRAM ProgA 23 USE ModA 24 IMPLICIT NONE 25 INTEGER :: ierr 26 INTEGER :: i 27 TYPE(A), ALLOCATABLE :: arr(:) 28 ALLOCATE(arr(2)) 29 DO i = 1, 2 30 arr(i)%proc => a_proc 31 CALL arr(i)%Proc(ierr) 32 END DO 33END PROGRAM ProgA 34