52 lines
1.1 KiB
Fortran
52 lines
1.1 KiB
Fortran
! { 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
|
|
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
|
|
|
|
! { dg-final { cleanup-modules "bind_c_coms bind_c_coms_2" } }
|