1! { dg-do run }
2program value_tests_f03
3  use, intrinsic :: iso_c_binding
4  real(c_double) :: myDouble
5  interface
6     subroutine value_test(myDouble) bind(c)
7       use, intrinsic :: iso_c_binding
8       real(c_double), value :: myDouble
9     end subroutine value_test
10  end interface
11
12  myDouble = 9.0d0
13  call value_test(myDouble)
14end program value_tests_f03
15
16subroutine value_test(myDouble) bind(c)
17  use, intrinsic :: iso_c_binding
18  real(c_double), value :: myDouble
19  interface
20     subroutine mySub(myDouble)
21       use, intrinsic :: iso_c_binding
22       real(c_double), value :: myDouble
23     end subroutine mySub
24  end interface
25
26  myDouble = 10.0d0
27
28  call mySub(myDouble)
29end subroutine value_test
30
31subroutine mySub(myDouble)
32  use, intrinsic :: iso_c_binding
33  real(c_double), value :: myDouble
34
35  myDouble = 11.0d0
36end subroutine mySub
37
38