1! { dg-do run }
2! { dg-additional-sources bind_c_coms_driver.c }
3! { dg-options "-w" }
4! the -w option is to prevent the warning about long long ints
5module bind_c_coms
6  use, intrinsic :: iso_c_binding
7  implicit none
8
9  common /COM/ R, S
10  real(c_double) :: r
11  real(c_double) :: t
12  real(c_double) :: s
13  bind(c) :: /COM/, /SINGLE/, /MYCOM/
14  common /SINGLE/ T
15  common /MYCOM/ LONG_INTS
16  integer(c_long) :: LONG_INTS
17  common /MYCOM2/ LONG_LONG_INTS
18  integer(c_long_long) :: long_long_ints
19  bind(c) :: /mycom2/
20
21  common /com2/ i, j
22  integer(c_int) :: i, j
23  bind(c, name="f03_com2") /com2/
24
25  common /com3/ m, n
26  integer(c_int) :: m, n
27  bind(c, name="") /com3/
28
29contains
30  subroutine test_coms() bind(c)
31    r = r + .1d0;
32    s = s + .1d0;
33    t = t + .1d0;
34    long_ints = long_ints + 1
35    long_long_ints = long_long_ints + 1
36    i = i + 1
37    j = j + 1
38
39    m = 1
40    n = 1
41  end subroutine test_coms
42end module bind_c_coms
43
44module bind_c_coms_2
45  use, intrinsic :: iso_c_binding, only: c_int
46  common /com3/ m, n
47  integer(c_int) :: m, n
48  bind(c, name="") /com3/
49end module bind_c_coms_2
50