summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr32599.f03
blob: fa8aa68f9289d4f43d102084fa65a7ee96c783a0 (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
40
! { dg-do compile }
! PR fortran/32599
! Verifies that character string arguments to a bind(c) procedure have length 
! 1, or no len is specified.  
module pr32599
  interface
     subroutine destroy(path) BIND(C) ! { dg-error "must be length 1" }
       use iso_c_binding
       implicit none
       character(len=*,kind=c_char), intent(IN) :: path 
     end subroutine destroy

     subroutine create(path) BIND(C) ! { dg-error "must be length 1" }
       use iso_c_binding
       implicit none
       character(len=5,kind=c_char), intent(IN) :: path 
     end subroutine create

     ! This should be valid.
     subroutine create1(path) BIND(C)
       use iso_c_binding
       implicit none
       character(len=1,kind=c_char), intent(IN) :: path 
     end subroutine create1

     ! This should be valid.
     subroutine create2(path) BIND(C)
       use iso_c_binding
       implicit none
       character(kind=c_char), intent(IN) :: path
     end subroutine create2

     ! This should be valid.
     subroutine create3(path) BIND(C)
       use iso_c_binding
       implicit none
       character(kind=c_char), dimension(*), intent(IN) :: path
     end subroutine create3
  end interface
end module pr32599