25 lines
700 B
Fortran
25 lines
700 B
Fortran
! { dg-do compile }
|
|
! This tests the fix for PR28885, in which multiple calls to a procedure
|
|
! with different components of an array of derived types for an INTENT(OUT)
|
|
! argument caused an ICE internal compiler error. This came about because
|
|
! the compiler would lose the temporary declaration with each subsequent
|
|
! call of the procedure.
|
|
!
|
|
! Reduced from the contribution by Drew McCormack <drewmccormack@mac.com>
|
|
!
|
|
program test
|
|
type t
|
|
integer :: i
|
|
integer :: j
|
|
end type
|
|
type (t) :: a(5)
|
|
call sub('one',a%j)
|
|
call sub('two',a%i)
|
|
contains
|
|
subroutine sub(key,a)
|
|
integer, intent(out) :: a(:)
|
|
character(*),intent(in) :: key
|
|
a = 1
|
|
end subroutine
|
|
end program
|