1! { dg-do compile } 2! { dg-options "-std=f2003" } 3! Test that the arg checking for c_funloc verifies the procedures are 4! C interoperable. 5module c_funloc_tests_5 6 use, intrinsic :: iso_c_binding, only: c_funloc, c_funptr 7contains 8 subroutine sub0() bind(c) 9 type(c_funptr) :: my_c_funptr 10 11 my_c_funptr = c_funloc(sub1) ! { dg-error "TS 29113/TS 18508: Noninteroperable procedure at .1. to C_FUNLOC" } 12 13 my_c_funptr = c_funloc(func0) ! { dg-error "TS 29113/TS 18508: Noninteroperable procedure at .1. to C_FUNLOC" } 14 end subroutine sub0 15 16 subroutine sub1() 17 end subroutine sub1 18 19 function func0(desired_retval) 20 use, intrinsic :: iso_c_binding, only: c_int 21 integer(c_int), value :: desired_retval 22 integer(c_int) :: func0 23 func0 = desired_retval 24 end function func0 25end module c_funloc_tests_5 26 27 28