! { dg-do run } | |
! { dg-additional-sources bind_c_coms_driver.c } | |
! { dg-options "-w" } | |
! the -w option is to prevent the warning about long long ints | |
module bind_c_coms | |
! { dg-additional-options "-fcommon" { target hppa*-*-hpux* } } | |
use, intrinsic :: iso_c_binding | |
implicit none | |
common /COM/ R, S | |
real(c_double) :: r | |
real(c_double) :: t | |
real(c_double) :: s | |
bind(c) :: /COM/, /SINGLE/, /MYCOM/ | |
common /SINGLE/ T | |
common /MYCOM/ LONG_INTS | |
integer(c_long) :: LONG_INTS | |
common /MYCOM2/ LONG_LONG_INTS | |
integer(c_long_long) :: long_long_ints | |
bind(c) :: /mycom2/ | |
common /com2/ i, j | |
integer(c_int) :: i, j | |
bind(c, name="f03_com2") /com2/ | |
common /com3/ m, n | |
integer(c_int) :: m, n | |
bind(c, name="") /com3/ | |
contains | |
subroutine test_coms() bind(c) | |
r = r + .1d0; | |
s = s + .1d0; | |
t = t + .1d0; | |
long_ints = long_ints + 1 | |
long_long_ints = long_long_ints + 1 | |
i = i + 1 | |
j = j + 1 | |
m = 1 | |
n = 1 | |
end subroutine test_coms | |
end module bind_c_coms | |
module bind_c_coms_2 | |
use, intrinsic :: iso_c_binding, only: c_int | |
common /com3/ m, n | |
integer(c_int) :: m, n | |
bind(c, name="") /com3/ | |
end module bind_c_coms_2 |