| ! { dg-do compile } |
| ! Test that the arg checking for c_funloc verifies the procedures are |
| ! C interoperable. |
| module c_funloc_tests_5 |
| use, intrinsic :: iso_c_binding, only: c_funloc, c_funptr |
| contains |
| subroutine sub0() bind(c) |
| type(c_funptr) :: my_c_funptr |
| |
| my_c_funptr = c_funloc(sub1) ! { dg-error "must be BIND.C." } |
| |
| my_c_funptr = c_funloc(func0) ! { dg-error "must be BIND.C." } |
| end subroutine sub0 |
| |
| subroutine sub1() |
| end subroutine sub1 |
| |
| function func0(desired_retval) |
| use, intrinsic :: iso_c_binding, only: c_int |
| integer(c_int), value :: desired_retval |
| integer(c_int) :: func0 |
| func0 = desired_retval |
| end function func0 |
| end module c_funloc_tests_5 |
| |
| |