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  PRIVATE
11  TYPE, PUBLIC :: A
12  CONTAINS
13    PROCEDURE :: Proc => a_proc
14  END TYPE A
15CONTAINS
16  SUBROUTINE a_proc(this, stat)
17    CLASS(A), INTENT(INOUT) :: this
18    INTEGER, INTENT(OUT) :: stat
19    WRITE (*, *) 'a_proc'
20    stat = 0
21  END SUBROUTINE a_proc
22END MODULE ModA
23
24PROGRAM ProgA
25  USE ModA
26  IMPLICIT NONE
27  INTEGER :: ierr
28  INTEGER :: i
29  TYPE(A), ALLOCATABLE :: arr(:)
30  ALLOCATE(arr(2))
31  DO i = 1, 2
32    CALL arr(i)%Proc(ierr)
33  END DO
34END PROGRAM ProgA
35
36