AArch64: correct constraint on Upl early clobber alternatives
[official-gcc.git] / gcc / testsuite / gfortran.dg / iso_c_binding_c_loc_char_1.f03
blob14bc4a075927acbfc5d8604bc17086b02e6bd361
1 ! { dg-do compile }
2 ! PR 38536 - don't reject substring of length one
3 ! Original test case by Scot Breitenfeld
4 SUBROUTINE test(buf, buf2, buf3, n)
5   USE, INTRINSIC :: ISO_C_BINDING
6   IMPLICIT NONE
7   CHARACTER(LEN=*), INTENT(INOUT), TARGET :: buf
8   INTEGER, INTENT(in) :: n
9   CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(1:2), TARGET :: buf2
10   CHARACTER(LEN=3), TARGET :: buf3
11   TYPE(C_PTR) :: f_ptr
13   f_ptr = C_LOC(buf(1:1))      ! Used to fail
14                                ! Error: CHARACTER argument 'buf' to 'c_loc'
15                                ! at (1) must have a length of 1
16   f_ptr = C_LOC(buf2(1)(1:1))  ! PASSES
18   f_ptr = C_LOC(buf(n:n))
20   f_ptr = C_LOC(buf3(3:))
21 END SUBROUTINE test