blob: 899a6954361660edbb17d9897b83dc3379a38c16 [file] [log] [blame]
! { dg-do run { target c99_runtime } }
! { dg-additional-sources ISO_Fortran_binding_8.c }
!
! Test the fix for PR89842.
!
! Contributed by Reinhold Bader <Bader@lrz.de>
!
module mod_alloc_01
use, intrinsic :: iso_c_binding
implicit none
interface
subroutine globalp(this) bind(c)
import :: c_float
real(c_float), allocatable :: this(:)
end subroutine globalp
end interface
end module mod_alloc_01
program alloc_01
use mod_alloc_01
implicit none
real(c_float), allocatable :: myp(:)
integer :: status
status = 0
call globalp(myp)
! write(*,*) 'globalp done'
if (.not. allocated(myp)) then
write(*,*) 'FAIL 1'
stop 1
end if
if (lbound(myp,1) /= 3 .or. size(myp,1) /= 4) then
write(*,*) 'FAIL 2: ', lbound(myp), size(myp,1)
status = status + 1
else
! write(*,*) 'Now checking data', myp(3)
if (maxval(abs(myp - [1.1, 2.3, 5.1, 4.2])) > 1.0e-6) then
write(*,*) 'FAIL 3: ', myp
status = status + 1
end if
end if
if (status .ne. 0) then
stop status
end if
end program alloc_01