blob: 14bc4a075927acbfc5d8604bc17086b02e6bd361 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
! { dg-do compile }
! PR 38536 - don't reject substring of length one
! Original test case by Scot Breitenfeld
SUBROUTINE test(buf, buf2, buf3, n)
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(INOUT), TARGET :: buf
INTEGER, INTENT(in) :: n
CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(1:2), TARGET :: buf2
CHARACTER(LEN=3), TARGET :: buf3
TYPE(C_PTR) :: f_ptr
f_ptr = C_LOC(buf(1:1)) ! Used to fail
! Error: CHARACTER argument 'buf' to 'c_loc'
! at (1) must have a length of 1
f_ptr = C_LOC(buf2(1)(1:1)) ! PASSES
f_ptr = C_LOC(buf(n:n))
f_ptr = C_LOC(buf3(3:))
END SUBROUTINE test
|