1! { dg-do run }
2! { dg-additional-sources c_loc_driver.c }
3module c_loc_test
4implicit none
5
6contains
7  subroutine test0() bind(c)
8    use, intrinsic :: iso_c_binding
9    implicit none
10    integer, target :: x
11    type(c_ptr) :: my_c_ptr
12    interface
13       subroutine test_address(x, expected_value) bind(c)
14         use, intrinsic :: iso_c_binding
15         type(c_ptr), value :: x
16         integer(c_int), value :: expected_value
17       end subroutine test_address
18    end interface
19    x = 100
20    my_c_ptr = c_loc(x)
21    call test_address(my_c_ptr, 100)
22  end subroutine test0
23end module c_loc_test
24