URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [bind_c_usage_24.f90] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
! { dg-do run }
! { dg-additional-sources bind_c_usage_24_c.c }
!
! PR fortran/48858
! PR fortran/48820
!
! TS 29113: BIND(C) with OPTIONAL
!
module m
use iso_c_binding
interface
subroutine c_proc (is_present, var) bind(C)
import
logical(c_bool), value :: is_present
integer(c_int), optional :: var
end subroutine
end interface
contains
subroutine subtest (is_present, var) bind(C)
logical(c_bool), intent(in), value :: is_present
integer(c_int), intent(inout), optional :: var
if (is_present) then
if (.not. present (var)) call abort ()
if (var /= 43) call abort ()
var = -45
else
if (present (var)) call abort ()
end if
end subroutine subtest
end module m
program test
use m
implicit none
integer :: val
val = 4
call c_proc (.false._c_bool)
call c_proc (.true._c_bool, val)
if (val /= 7) call abort ()
end program test
! { dg-final { cleanup-modules "m" } }
Go to most recent revision | Compare with Previous | Blame | View Log