summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/bind_c_procs.f03
blob: 718042bafcbe5640210456a31a99c2cc8dd91f7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
! { dg-do compile }
module bind_c_procs
  use, intrinsic :: iso_c_binding, only: c_int

  interface
     ! warning for my_param possibly not being C interoperable
     subroutine my_c_sub(my_param) bind(c) ! { dg-warning "may not be C interoperable" }
       integer, value :: my_param
     end subroutine my_c_sub

     ! warning for my_c_func possibly not being a C interoperable kind
     ! warning for my_param possibly not being C interoperable
     ! error message truncated to provide an expression that both warnings
     ! should match.
     function my_c_func(my_param) bind(c) ! { dg-warning "may not be" }
       integer, value :: my_param
       integer :: my_c_func
     end function my_c_func
  end interface

contains
  ! warning for my_param possibly not being C interoperable
  subroutine my_f03_sub(my_param) bind(c) ! { dg-warning "may not be" }
    integer, value :: my_param
  end subroutine my_f03_sub

  ! warning for my_f03_func possibly not being a C interoperable kind
  ! warning for my_param possibly not being C interoperable
  ! error message truncated to provide an expression that both warnings
  ! should match.
  function my_f03_func(my_param) bind(c) ! { dg-warning "may not be" }
    integer, value :: my_param
    integer :: my_f03_func
    my_f03_func = 1
  end function my_f03_func

end module bind_c_procs

! { dg-final { cleanup-modules "bind_c_procs" } }