2 ! { dg-additional-options "-std=f2003 -fimplicit-none" }
4 ! F2003 only permits length=1 character dummy args
6 ! Scalar, nonallocatable/nonpointer
8 subroutine s1 (x1
) bind(C
)
12 subroutine s2 (x2
) bind(C
) ! { dg-error "Character dummy argument 'x2' at .1. must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure 's2' has the BIND\\(C\\) attribute" }
13 character(len
=2) :: x2
16 subroutine s3 (xn
, n
) bind(C
) ! { dg-error "Character dummy argument 'xn' at .1. must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure 's3' has the BIND\\(C\\) attribute" }
18 character(len
=n
) :: xn
21 subroutine s4 (xstar
) bind(C
) ! { dg-error "Fortran 2018: Assumed-length character dummy argument 'xstar' at .1. of procedure 's4' with BIND\\(C\\) attribute" }
22 character(len
=*) :: xstar
25 ! Assumed-shape array, nonallocatable/nonpointer
27 subroutine as1 (x1
) bind(C
) ! { dg-error "Fortran 2018: Assumed-shape array 'x1' at .1. as dummy argument to the BIND\\(C\\) procedure 'as1' at .2." }
28 character(len
=1) :: x1(:)
31 subroutine as2 (x2
) bind(C
) ! { dg-error "Fortran 2018: Assumed-shape array 'x2' at .1. as dummy argument to the BIND\\(C\\) procedure 'as2' at .2." }
32 character(len
=2) :: x2(:,:)
35 subroutine as3 (xn
, n
) bind(C
) ! { dg-error "Fortran 2018: Assumed-shape array 'xn' at .1. as dummy argument to the BIND\\(C\\) procedure 'as3' at .2." }
37 character(len
=n
) :: xn(:,:,:)
40 subroutine as4 (xstar
) bind(C
) ! { dg-error "Fortran 2018: Assumed-length character dummy argument 'xstar' at .1. of procedure 'as4' with BIND\\(C\\) attribute" }
41 ! { dg-error "Fortran 2018: Assumed-shape array 'xstar' at .1. as dummy argument to the BIND\\(C\\) procedure 'as4' at .2." "" { target *-*-* } .-1 }
42 character(len
=*) :: xstar(:,:,:,:)
45 ! Assumed-rank array, nonallocatable/nonpointer
47 subroutine ar1 (x1
) bind(C
) ! { dg-error "Symbol 'x1' at .1. has no IMPLICIT type" }
48 character(len
=1) :: x1(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
51 subroutine ar2 (x2
) bind(C
) ! { dg-error "Symbol 'x2' at .1. has no IMPLICIT type" }
52 character(len
=2) :: x2(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
55 subroutine ar3 (xn
, n
) bind(C
) ! { dg-error "Symbol 'xn' at .1. has no IMPLICIT type" }
57 character(len
=n
) :: xn(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
60 subroutine ar4 (xstar
) bind(C
) ! { dg-error "Symbol 'xstar' at .1. has no IMPLICIT type" }
61 character(len
=*) :: xstar(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
64 ! Assumed-size array, nonallocatable/nonpointer
66 subroutine az1 (x1
) bind(C
)
67 character(len
=1) :: x1(*)
70 subroutine az2 (x2
) bind(C
) ! { dg-error "Character dummy argument 'x2' at .1. must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure 'az2' has the BIND\\(C\\) attribute" }
71 character(len
=2) :: x2(*)
74 subroutine az3 (xn
, n
) bind(C
) ! { dg-error "Character dummy argument 'xn' at .1. must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure 'az3' has the BIND\\(C\\) attribute" }
76 character(len
=n
) :: xn(*)
79 subroutine az4 (xstar
) bind(C
) ! { dg-error "Fortran 2018: Assumed-length character dummy argument 'xstar' at .1. of procedure 'az4' with BIND\\(C\\) attribute" }
80 character(len
=*) :: xstar(*)
83 ! Explicit-size array, nonallocatable/nonpointer
85 subroutine ae1 (x1
) bind(C
)
86 character(len
=1) :: x1(5)
89 subroutine ae2 (x2
) bind(C
) ! { dg-error "Character dummy argument 'x2' at .1. must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure 'ae2' has the BIND\\(C\\) attribute" }
90 character(len
=2) :: x2(7)
93 subroutine ae3 (xn
, n
) bind(C
) ! { dg-error "Character dummy argument 'xn' at .1. must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure 'ae3' has the BIND\\(C\\) attribute" }
95 character(len
=n
) :: xn(9)
98 subroutine ae4 (xstar
) bind(C
) ! { dg-error "Fortran 2018: Assumed-length character dummy argument 'xstar' at .1. of procedure 'ae4' with BIND\\(C\\) attribute" }
99 character(len
=*) :: xstar(3)
103 ! Scalar, allocatable
105 subroutine s1a (x1
) bind(C
) ! { dg-error "Allocatable character dummy argument 'x1' at .1. must have deferred length as procedure 's1a' is BIND\\(C\\)" }
106 ! { dg-error "Fortran 2018: Variable 'x1' at .1. with ALLOCATABLE attribute in procedure 's1a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
107 character(len
=1), allocatable
:: x1
110 subroutine s2a (x2
) bind(C
) ! { dg-error "Allocatable character dummy argument 'x2' at .1. must have deferred length as procedure 's2a' is BIND\\(C\\)" }
111 ! { dg-error "Fortran 2018: Variable 'x2' at .1. with ALLOCATABLE attribute in procedure 's2a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
112 character(len
=2), allocatable
:: x2
115 subroutine s3a (xn
, n
) bind(C
) ! { dg-error "Allocatable character dummy argument 'xn' at .1. must have deferred length as procedure 's3a' is BIND\\(C\\)" }
116 ! { dg-error "Fortran 2018: Variable 'xn' at .1. with ALLOCATABLE attribute in procedure 's3a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
118 character(len
=n
), allocatable
:: xn
121 subroutine s4a (xstar
) bind(C
) ! { dg-error "Allocatable character dummy argument 'xstar' at .1. must have deferred length as procedure 's4a' is BIND\\(C\\)" }
122 ! { dg-error "Fortran 2018: Variable 'xstar' at .1. with ALLOCATABLE attribute in procedure 's4a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
123 character(len
=*), allocatable
:: xstar
126 subroutine s5a (xcolon
) bind(C
) ! { dg-error "Fortran 2018: Deferred-length character dummy argument 'xcolon' at .1. of procedure 's5a' with BIND\\(C\\) attribute" }
127 ! { dg-error "Fortran 2018: Variable 'xcolon' at .1. with ALLOCATABLE attribute in procedure 's5a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
128 character(len
=:), allocatable
:: xcolon
131 ! Assumed-shape array, allocatable
133 subroutine a1a (x1
) bind(C
) ! { dg-error "Allocatable character dummy argument 'x1' at .1. must have deferred length as procedure 'a1a' is BIND\\(C\\)" }
134 ! { dg-error "Fortran 2018: Variable 'x1' at .1. with ALLOCATABLE attribute in procedure 'a1a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
135 character(len
=1), allocatable
:: x1(:)
138 subroutine a2a (x2
) bind(C
) ! { dg-error "Allocatable character dummy argument 'x2' at .1. must have deferred length as procedure 'a2a' is BIND\\(C\\)" }
139 ! { dg-error "Fortran 2018: Variable 'x2' at .1. with ALLOCATABLE attribute in procedure 'a2a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
140 character(len
=2), allocatable
:: x2(:,:)
143 subroutine a3a (xn
, n
) bind(C
) ! { dg-error "Allocatable character dummy argument 'xn' at .1. must have deferred length as procedure 'a3a' is BIND\\(C\\)" }
144 ! { dg-error "Fortran 2018: Variable 'xn' at .1. with ALLOCATABLE attribute in procedure 'a3a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
146 character(len
=n
), allocatable
:: xn(:,:,:)
149 subroutine a4a (xstar
) bind(C
) ! { dg-error "Allocatable character dummy argument 'xstar' at .1. must have deferred length as procedure 'a4a' is BIND\\(C\\)" }
150 ! { dg-error "Fortran 2018: Variable 'xstar' at .1. with ALLOCATABLE attribute in procedure 'a4a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
151 character(len
=*), allocatable
:: xstar(:,:,:,:)
154 subroutine a5a (xcolon
) bind(C
) ! { dg-error "Fortran 2018: Deferred-length character dummy argument 'xcolon' at .1. of procedure 'a5a' with BIND\\(C\\) attribute" }
155 ! { dg-error "Fortran 2018: Variable 'xcolon' at .1. with ALLOCATABLE attribute in procedure 'a5a' with BIND\\(C\\)" "" { target *-*-* } .-1 }
156 character(len
=:), allocatable
:: xcolon(:)
159 ! Assumed-rank array, allocatable
161 subroutine a1ar (x1
) bind(C
) ! { dg-error "Symbol 'x1' at .1. has no IMPLICIT type" }
162 character(len
=1), allocatable
:: x1(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
165 subroutine a2ar (x2
) bind(C
) ! { dg-error "Symbol 'x2' at .1. has no IMPLICIT type" }
166 character(len
=2), allocatable
:: x2(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
169 subroutine a3ar (xn
, n
) bind(C
) ! { dg-error "Symbol 'xn' at .1. has no IMPLICIT type" }
171 character(len
=n
), allocatable
:: xn(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
174 subroutine a4ar (xstar
) bind(C
) ! { dg-error "Symbol 'xstar' at .1. has no IMPLICIT type" }
175 character(len
=*), allocatable
:: xstar(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
178 subroutine a5ar (xcolon
) bind(C
) ! { dg-error "Symbol 'xcolon' at .1. has no IMPLICIT type" }
179 character(len
=:), allocatable
:: xcolon(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
185 subroutine s1p (x1
) bind(C
) ! { dg-error "Pointer character dummy argument 'x1' at .1. must have deferred length as procedure 's1p' is BIND\\(C\\)" }
186 ! { dg-error "Fortran 2018: Variable 'x1' at .1. with POINTER attribute in procedure 's1p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
187 character(len
=1), pointer :: x1
190 subroutine s2p (x2
) bind(C
) ! { dg-error "Pointer character dummy argument 'x2' at .1. must have deferred length as procedure 's2p' is BIND\\(C\\)" }
191 ! { dg-error "Fortran 2018: Variable 'x2' at .1. with POINTER attribute in procedure 's2p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
192 character(len
=2), pointer :: x2
195 subroutine s3p (xn
, n
) bind(C
) ! { dg-error "Pointer character dummy argument 'xn' at .1. must have deferred length as procedure 's3p' is BIND\\(C\\)" }
196 ! { dg-error "Fortran 2018: Variable 'xn' at .1. with POINTER attribute in procedure 's3p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
198 character(len
=n
), pointer :: xn
201 subroutine s4p (xstar
) bind(C
) ! { dg-error "Pointer character dummy argument 'xstar' at .1. must have deferred length as procedure 's4p' is BIND\\(C\\)" }
202 ! { dg-error "Fortran 2018: Variable 'xstar' at .1. with POINTER attribute in procedure 's4p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
203 character(len
=*), pointer :: xstar
206 subroutine s5p (xcolon
) bind(C
) ! { dg-error "Fortran 2018: Deferred-length character dummy argument 'xcolon' at .1. of procedure 's5p' with BIND\\(C\\) attribute" }
207 ! { dg-error "Fortran 2018: Variable 'xcolon' at .1. with POINTER attribute in procedure 's5p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
208 character(len
=:), pointer :: xcolon
211 ! Assumed-shape array, pointer
213 subroutine a1p (x1
) bind(C
) ! { dg-error "Pointer character dummy argument 'x1' at .1. must have deferred length as procedure 'a1p' is BIND\\(C\\)" }
214 ! { dg-error "Fortran 2018: Variable 'x1' at .1. with POINTER attribute in procedure 'a1p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
215 character(len
=1), pointer :: x1(:)
218 subroutine a2p (x2
) bind(C
) ! { dg-error "Pointer character dummy argument 'x2' at .1. must have deferred length as procedure 'a2p' is BIND\\(C\\)" }
219 ! { dg-error "Fortran 2018: Variable 'x2' at .1. with POINTER attribute in procedure 'a2p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
220 character(len
=2), pointer :: x2(:,:)
223 subroutine a3p (xn
, n
) bind(C
) ! { dg-error "Pointer character dummy argument 'xn' at .1. must have deferred length as procedure 'a3p' is BIND\\(C\\)" }
224 ! { dg-error "Fortran 2018: Variable 'xn' at .1. with POINTER attribute in procedure 'a3p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
226 character(len
=n
), pointer :: xn(:,:,:)
229 subroutine a4p (xstar
) bind(C
) ! { dg-error "Pointer character dummy argument 'xstar' at .1. must have deferred length as procedure 'a4p' is BIND\\(C\\)" }
230 ! { dg-error "Fortran 2018: Variable 'xstar' at .1. with POINTER attribute in procedure 'a4p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
231 character(len
=*), pointer :: xstar(:,:,:,:)
234 subroutine a5p (xcolon
) bind(C
) ! { dg-error "Fortran 2018: Deferred-length character dummy argument 'xcolon' at .1. of procedure 'a5p' with BIND\\(C\\) attribute" }
235 ! { dg-error "Fortran 2018: Variable 'xcolon' at .1. with POINTER attribute in procedure 'a5p' with BIND\\(C\\)" "" { target *-*-* } .-1 }
236 character(len
=:), pointer :: xcolon(:)
239 ! Assumed-rank array, pointer
241 subroutine a1pr (x1
) bind(C
) ! { dg-error "Symbol 'x1' at .1. has no IMPLICIT type" }
242 character(len
=1), pointer :: x1(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
245 subroutine a2pr (x2
) bind(C
) ! { dg-error "Symbol 'x2' at .1. has no IMPLICIT type" }
246 character(len
=2), pointer :: x2(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
249 subroutine a3pr (xn
, n
) bind(C
) ! { dg-error "Symbol 'xn' at .1. has no IMPLICIT type" }
251 character(len
=n
), pointer :: xn(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
254 subroutine a4pr (xstar
) bind(C
) ! { dg-error "Symbol 'xstar' at .1. has no IMPLICIT type" }
255 character(len
=*), pointer :: xstar(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }
258 subroutine a5pr (xcolon
) bind(C
) ! { dg-error "Symbol 'xcolon' at .1. has no IMPLICIT type" }
259 character(len
=:), pointer :: xcolon(..) ! { dg-error "Fortran 2018: Assumed-rank array at .1." }