Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/allocatable_function_10.f90 @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
! { dg-do run } ! ! Test the fix for PR78293. The deallocations are present at the ! end of the main programme to aid memory leak searching. The ! allocation in 'tt' leaked memory from an intermediate temporary ! for the array constructor. ! ! Contributed by Andrew Benson <abensonca@gmail.com> ! module m implicit none type t integer, allocatable, dimension(:) :: r end type t contains function tt(a,b) implicit none type(t), allocatable, dimension(:) :: tt type(t), intent(in), dimension(:) :: a,b allocate(tt, source = [a,b]) end function tt function ts(arg) implicit none type(t), allocatable, dimension(:) :: ts integer, intent(in) :: arg(:) allocate(ts(1)) allocate(ts(1)%r, source = arg) return end function ts end module m program p use m implicit none type(t), dimension(2) :: c c=tt(ts([99,199,1999]),ts([42,142])) if (any (c(1)%r .ne. [99,199,1999])) STOP 1 if (any (c(2)%r .ne. [42,142])) STOP 2 deallocate(c(1)%r) deallocate(c(2)%r) end program p