view gcc/testsuite/gfortran.dg/proc_ptr_comp_pass_6.f90 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

! { 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 <ian_harvey@bigpond.com>

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