2 ! { dg-additional-sources PR100906.c }
4 ! Test the fix for PR100906
9 use, intrinsic :: iso_c_binding
, only
: &
10 c_signed_char
, c_int16_t
31 integer, parameter :: CFI_type_t
= c_int16_t
33 integer(kind
=c_int16_t
), parameter :: CFI_type_mask
= int(z
"FF", kind
=c_int16_t
)
34 integer(kind
=c_int16_t
), parameter :: CFI_type_kind_shift
= 8_c_int16_t
36 ! Intrinsic types. Their kind number defines their storage size. */
37 integer(kind
=c_signed_char
), parameter :: CFI_type_Character
= 5
39 ! C-Fortran Interoperability types.
40 integer(kind
=cfi_type_t
), parameter :: CFI_type_char
= &
41 ior(int(CFI_type_Character
, kind
=c_int16_t
), shiftl(1_c_int16_t
, CFI_type_kind_shift
))
42 integer(kind
=cfi_type_t
), parameter :: CFI_type_ucs4_char
= &
43 ior(int(CFI_type_Character
, kind
=c_int16_t
), shiftl(4_c_int16_t
, CFI_type_kind_shift
))
46 subroutine check_tk_as(a
, t
, k
, e
, n
) &
47 bind(c
, name
="check_tk")
48 use, intrinsic :: iso_c_binding
, only
: &
49 c_int16_t
, c_signed_char
, c_size_t
51 type(*), intent(in
) :: a(:)
52 integer(c_int16_t
), value
, intent(in
) :: t
53 integer(c_signed_char
), value
, intent(in
) :: k
54 integer(c_size_t
), value
, intent(in
) :: e
55 integer(c_size_t
), value
, intent(in
) :: n
56 end subroutine check_tk_as
57 subroutine check_tk_ar(a
, t
, k
, e
, n
) &
58 bind(c
, name
="check_tk")
59 use, intrinsic :: iso_c_binding
, only
: &
60 c_int16_t
, c_signed_char
, c_size_t
62 type(*), intent(in
) :: a(..)
63 integer(c_int16_t
), value
, intent(in
) :: t
64 integer(c_signed_char
), value
, intent(in
) :: k
65 integer(c_size_t
), value
, intent(in
) :: e
66 integer(c_size_t
), value
, intent(in
) :: n
67 end subroutine check_tk_ar
72 elemental
function cfi_encode_type(type, kind
) result(itype
)
73 integer(kind
=c_signed_char
), intent(in
) :: type
74 integer(kind
=c_signed_char
), intent(in
) :: kind
76 integer(kind
=c_int16_t
) :: itype
, ikind
78 itype
= int(type, kind
=c_int16_t
)
79 itype
= iand(itype
, CFI_type_mask
)
80 ikind
= int(kind
, kind
=c_int16_t
)
81 ikind
= iand(ikind
, CFI_type_mask
)
82 ikind
= shiftl(ikind
, CFI_type_kind_shift
)
83 itype
= ior(ikind
, itype
)
85 end function cfi_encode_type
91 use, intrinsic :: iso_c_binding
, only
: &
92 c_signed_char
, c_int16_t
, c_size_t
94 use, intrinsic :: iso_c_binding
, only
: &
97 use :: isof_m
, only
: &
100 use :: isof_m
, only
: &
104 use :: isof_m
, only
: &
108 use :: isof_m
, only
: &
118 check_c_ucs4_char_l1
, &
122 integer(kind
=c_size_t
), parameter :: b
= 8
123 integer, parameter :: n
= 11
124 integer, parameter :: m
= 7
126 integer, parameter :: c_ucs4_char
= 4
128 character(kind
=c_char
, len
=1), parameter :: ref_c_char_l1(*) = &
129 [(achar(i
+iachar("A")-1, kind
=c_char
), i
=1,n
)]
130 character(kind
=c_char
, len
=m
), parameter :: ref_c_char_lm(*) = &
131 [(repeat(achar(i
+iachar("A")-1, kind
=c_char
), m
), i
=1,n
)]
132 character(kind
=c_ucs4_char
, len
=1), parameter :: ref_c_ucs4_char_l1(*) = &
133 [(achar(i
+iachar("A")-1, kind
=c_ucs4_char
), i
=1,n
)]
134 character(kind
=c_ucs4_char
, len
=m
), parameter :: ref_c_ucs4_char_lm(*) = &
135 [(repeat(achar(i
+iachar("A")-1, kind
=c_ucs4_char
), m
), i
=1,n
)]
139 subroutine check_c_char_l1()
140 character(kind
=c_char
, len
=1), target
:: a(n
)
142 character(kind
=c_char
, len
=:), pointer :: p(:)
145 call f_check_c_char_c1_as(a
)
146 if(any(a
/=ref_c_char_l1
)) stop 1
148 call c_check_c_char_c1_as(a
)
149 if(any(a
/=ref_c_char_l1
)) stop 2
151 call f_check_c_char_c1_ar(a
)
152 if(any(a
/=ref_c_char_l1
)) stop 3
154 call c_check_c_char_c1_ar(a
)
155 if(any(a
/=ref_c_char_l1
)) stop 4
157 call f_check_c_char_a1_as(a
)
158 if(any(a
/=ref_c_char_l1
)) stop 5
160 call c_check_c_char_a1_as(a
)
161 if(any(a
/=ref_c_char_l1
)) stop 6
163 call f_check_c_char_a1_ar(a
)
164 if(any(a
/=ref_c_char_l1
)) stop 7
166 call c_check_c_char_a1_ar(a
)
167 if(any(a
/=ref_c_char_l1
)) stop 8
170 call f_check_c_char_d1_as(p
)
171 if(.not
.associated(p
)) stop 9
172 if(.not
.associated(p
, a
)) stop 10
173 if(any(p
/=ref_c_char_l1
)) stop 11
174 if(any(a
/=ref_c_char_l1
)) stop 12
177 call c_check_c_char_d1_as(p
)
178 if(.not
.associated(p
)) stop 13
179 if(.not
.associated(p
, a
)) stop 14
180 if(any(p
/=ref_c_char_l1
)) stop 15
181 if(any(a
/=ref_c_char_l1
)) stop 16
184 call f_check_c_char_d1_ar(p
)
185 if(.not
.associated(p
)) stop 17
186 if(.not
.associated(p
, a
)) stop 18
187 if(any(p
/=ref_c_char_l1
)) stop 19
188 if(any(a
/=ref_c_char_l1
)) stop 20
191 call c_check_c_char_d1_ar(p
)
192 if(.not
.associated(p
)) stop 21
193 if(.not
.associated(p
, a
)) stop 22
194 if(any(p
/=ref_c_char_l1
)) stop 23
195 if(any(a
/=ref_c_char_l1
)) stop 24
197 end subroutine check_c_char_l1
199 subroutine f_check_c_char_c1_as(a
)
200 character(kind
=c_char
, len
=1), intent(in
) :: a(:)
202 integer(kind
=c_int16_t
) :: t
203 integer(kind
=c_signed_char
) :: k
204 integer(kind
=c_size_t
) :: e
, n
207 n
= len(a
, kind
=kind(e
))
208 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
209 t
= cfi_encode_type(CFI_type_Character
, k
)
210 if(k
<=0_c_signed_char
) stop 25
211 if(k
/=1_c_signed_char
) stop 26
213 if(int(k
, kind
=c_size_t
)/=e
) stop 28
214 if(t
/=CFI_type_char
) stop 29
215 if(any(a
/=ref_c_char_l1
)) stop 30
216 call check_tk_as(a
, t
, k
, e
, n
)
217 if(any(a
/=ref_c_char_l1
)) stop 31
219 end subroutine f_check_c_char_c1_as
221 subroutine c_check_c_char_c1_as(a
) bind(c
)
222 character(kind
=c_char
, len
=1), intent(in
) :: a(:)
224 integer(kind
=c_int16_t
) :: t
225 integer(kind
=c_signed_char
) :: k
226 integer(kind
=c_size_t
) :: e
, n
229 n
= len(a
, kind
=kind(e
))
230 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
231 t
= cfi_encode_type(CFI_type_Character
, k
)
232 if(k
<=0_c_signed_char
) stop 32
233 if(k
/=1_c_signed_char
) stop 33
235 if(int(k
, kind
=c_size_t
)/=e
) stop 35
236 if(t
/=CFI_type_char
) stop 36
237 if(any(a
/=ref_c_char_l1
)) stop 37
238 call check_tk_as(a
, t
, k
, e
, n
)
239 if(any(a
/=ref_c_char_l1
)) stop 38
241 end subroutine c_check_c_char_c1_as
243 subroutine f_check_c_char_c1_ar(a
)
244 character(kind
=c_char
, len
=1), intent(in
) :: a(..)
246 integer(kind
=c_int16_t
) :: t
247 integer(kind
=c_signed_char
) :: k
248 integer(kind
=c_size_t
) :: e
, n
251 n
= len(a
, kind
=kind(e
))
252 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
253 t
= cfi_encode_type(CFI_type_Character
, k
)
254 if(k
<=0_c_signed_char
) stop 39
255 if(k
/=1_c_signed_char
) stop 40
257 if(int(k
, kind
=c_size_t
)/=e
) stop 42
258 if(t
/=CFI_type_char
) stop 43
261 if(any(a
/=ref_c_char_l1
)) stop 44
265 call check_tk_ar(a
, t
, k
, e
, n
)
268 if(any(a
/=ref_c_char_l1
)) stop 46
273 end subroutine f_check_c_char_c1_ar
275 subroutine c_check_c_char_c1_ar(a
) bind(c
)
276 character(kind
=c_char
, len
=1), intent(in
) :: a(..)
278 integer(kind
=c_int16_t
) :: t
279 integer(kind
=c_signed_char
) :: k
280 integer(kind
=c_size_t
) :: e
, n
283 n
= len(a
, kind
=kind(e
))
284 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
285 t
= cfi_encode_type(CFI_type_Character
, k
)
286 if(k
<=0_c_signed_char
) stop 48
287 if(k
/=1_c_signed_char
) stop 49
289 if(int(k
, kind
=c_size_t
)/=e
) stop 51
290 if(t
/=CFI_type_char
) stop 52
293 if(any(a
/=ref_c_char_l1
)) stop 53
297 call check_tk_ar(a
, t
, k
, e
, n
)
300 if(any(a
/=ref_c_char_l1
)) stop 55
305 end subroutine c_check_c_char_c1_ar
307 subroutine f_check_c_char_a1_as(a
)
308 character(kind
=c_char
, len
=*), intent(in
) :: a(:)
310 integer(kind
=c_int16_t
) :: t
311 integer(kind
=c_signed_char
) :: k
312 integer(kind
=c_size_t
) :: e
, n
315 n
= len(a
, kind
=kind(e
))
316 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
317 t
= cfi_encode_type(CFI_type_Character
, k
)
318 if(k
<=0_c_signed_char
) stop 57
319 if(k
/=1_c_signed_char
) stop 58
321 if(int(k
, kind
=c_size_t
)/=e
) stop 60
322 if(t
/=CFI_type_char
) stop 61
323 if(any(a
/=ref_c_char_l1
)) stop 62
324 call check_tk_as(a
, t
, k
, e
, n
)
325 if(any(a
/=ref_c_char_l1
)) stop 63
327 end subroutine f_check_c_char_a1_as
329 subroutine c_check_c_char_a1_as(a
) bind(c
)
330 character(kind
=c_char
, len
=*), intent(in
) :: a(:)
332 integer(kind
=c_int16_t
) :: t
333 integer(kind
=c_signed_char
) :: k
334 integer(kind
=c_size_t
) :: e
, n
337 n
= len(a
, kind
=kind(e
))
338 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
339 t
= cfi_encode_type(CFI_type_Character
, k
)
340 if(k
<=0_c_signed_char
) stop 64
341 if(k
/=1_c_signed_char
) stop 65
343 if(int(k
, kind
=c_size_t
)/=e
) stop 67
344 if(t
/=CFI_type_char
) stop 68
345 if(any(a
/=ref_c_char_l1
)) stop 69
346 call check_tk_as(a
, t
, k
, e
, n
)
347 if(any(a
/=ref_c_char_l1
)) stop 70
349 end subroutine c_check_c_char_a1_as
351 subroutine f_check_c_char_a1_ar(a
)
352 character(kind
=c_char
, len
=*), intent(in
) :: a(..)
354 integer(kind
=c_int16_t
) :: t
355 integer(kind
=c_signed_char
) :: k
356 integer(kind
=c_size_t
) :: e
, n
359 n
= len(a
, kind
=kind(e
))
360 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
361 t
= cfi_encode_type(CFI_type_Character
, k
)
362 if(k
<=0_c_signed_char
) stop 71
363 if(k
/=1_c_signed_char
) stop 72
365 if(int(k
, kind
=c_size_t
)/=e
) stop 74
366 if(t
/=CFI_type_char
) stop 75
369 if(any(a
/=ref_c_char_l1
)) stop 76
373 call check_tk_ar(a
, t
, k
, e
, n
)
376 if(any(a
/=ref_c_char_l1
)) stop 78
381 end subroutine f_check_c_char_a1_ar
383 subroutine c_check_c_char_a1_ar(a
) bind(c
)
384 character(kind
=c_char
, len
=*), intent(in
) :: a(..)
386 integer(kind
=c_int16_t
) :: t
387 integer(kind
=c_signed_char
) :: k
388 integer(kind
=c_size_t
) :: e
, n
391 n
= len(a
, kind
=kind(e
))
392 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
393 t
= cfi_encode_type(CFI_type_Character
, k
)
394 if(k
<=0_c_signed_char
) stop 80
395 if(k
/=1_c_signed_char
) stop 81
397 if(int(k
, kind
=c_size_t
)/=e
) stop 83
398 if(t
/=CFI_type_char
) stop 84
401 if(any(a
/=ref_c_char_l1
)) stop 85
405 call check_tk_ar(a
, t
, k
, e
, n
)
408 if(any(a
/=ref_c_char_l1
)) stop 87
413 end subroutine c_check_c_char_a1_ar
415 subroutine f_check_c_char_d1_as(a
)
416 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(:)
418 integer(kind
=c_int16_t
) :: t
419 integer(kind
=c_signed_char
) :: k
420 integer(kind
=c_size_t
) :: e
, n
423 n
= len(a
, kind
=kind(e
))
424 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
425 t
= cfi_encode_type(CFI_type_Character
, k
)
426 if(k
<=0_c_signed_char
) stop 89
427 if(k
/=1_c_signed_char
) stop 90
429 if(int(k
, kind
=c_size_t
)/=e
) stop 92
430 if(t
/=CFI_type_char
) stop 93
431 if(any(a
/=ref_c_char_l1
)) stop 94
432 call check_tk_as(a
, t
, k
, e
, n
)
433 if(any(a
/=ref_c_char_l1
)) stop 95
435 end subroutine f_check_c_char_d1_as
437 subroutine c_check_c_char_d1_as(a
) bind(c
)
438 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(:)
440 integer(kind
=c_int16_t
) :: t
441 integer(kind
=c_signed_char
) :: k
442 integer(kind
=c_size_t
) :: e
, n
445 n
= len(a
, kind
=kind(e
))
446 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
447 t
= cfi_encode_type(CFI_type_Character
, k
)
448 if(k
<=0_c_signed_char
) stop 96
449 if(k
/=1_c_signed_char
) stop 97
451 if(int(k
, kind
=c_size_t
)/=e
) stop 99
452 if(t
/=CFI_type_char
) stop 100
453 if(any(a
/=ref_c_char_l1
)) stop 101
454 call check_tk_as(a
, t
, k
, e
, n
)
455 if(any(a
/=ref_c_char_l1
)) stop 102
457 end subroutine c_check_c_char_d1_as
459 subroutine f_check_c_char_d1_ar(a
)
460 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(..)
462 integer(kind
=c_int16_t
) :: t
463 integer(kind
=c_signed_char
) :: k
464 integer(kind
=c_size_t
) :: e
, n
467 n
= len(a
, kind
=kind(e
))
468 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
469 t
= cfi_encode_type(CFI_type_Character
, k
)
470 if(k
<=0_c_signed_char
) stop 103
471 if(k
/=1_c_signed_char
) stop 104
473 if(int(k
, kind
=c_size_t
)/=e
) stop 106
474 if(t
/=CFI_type_char
) stop 107
477 if(any(a
/=ref_c_char_l1
)) stop 108
481 call check_tk_ar(a
, t
, k
, e
, n
)
484 if(any(a
/=ref_c_char_l1
)) stop 110
489 end subroutine f_check_c_char_d1_ar
491 subroutine c_check_c_char_d1_ar(a
) bind(c
)
492 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(..)
494 integer(kind
=c_int16_t
) :: t
495 integer(kind
=c_signed_char
) :: k
496 integer(kind
=c_size_t
) :: e
, n
499 n
= len(a
, kind
=kind(e
))
500 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
501 t
= cfi_encode_type(CFI_type_Character
, k
)
502 if(k
<=0_c_signed_char
) stop 112
503 if(k
/=1_c_signed_char
) stop 113
505 if(int(k
, kind
=c_size_t
)/=e
) stop 115
506 if(t
/=CFI_type_char
) stop 116
509 if(any(a
/=ref_c_char_l1
)) stop 117
513 call check_tk_ar(a
, t
, k
, e
, n
)
516 if(any(a
/=ref_c_char_l1
)) stop 119
521 end subroutine c_check_c_char_d1_ar
523 subroutine check_c_char_lm()
524 character(kind
=c_char
, len
=m
), target
:: a(n
)
526 character(kind
=c_char
, len
=:), pointer :: p(:)
529 call f_check_c_char_cm_as(a
)
530 if(any(a
/=ref_c_char_lm
)) stop 121
532 call c_check_c_char_cm_as(a
)
533 if(any(a
/=ref_c_char_lm
)) stop 122
535 call f_check_c_char_cm_ar(a
)
536 if(any(a
/=ref_c_char_lm
)) stop 123
538 call c_check_c_char_cm_ar(a
)
539 if(any(a
/=ref_c_char_lm
)) stop 124
541 call f_check_c_char_am_as(a
)
542 if(any(a
/=ref_c_char_lm
)) stop 125
544 call c_check_c_char_am_as(a
)
545 if(any(a
/=ref_c_char_lm
)) stop 126
547 call f_check_c_char_am_ar(a
)
548 if(any(a
/=ref_c_char_lm
)) stop 127
550 call c_check_c_char_am_ar(a
)
551 if(any(a
/=ref_c_char_lm
)) stop 128
554 call f_check_c_char_dm_as(p
)
555 if(.not
.associated(p
)) stop 129
556 if(.not
.associated(p
, a
)) stop 130
557 if(any(p
/=ref_c_char_lm
)) stop 131
558 if(any(a
/=ref_c_char_lm
)) stop 132
561 call c_check_c_char_dm_as(p
)
562 if(.not
.associated(p
)) stop 133
563 if(.not
.associated(p
, a
)) stop 134
564 if(any(p
/=ref_c_char_lm
)) stop 135
565 if(any(a
/=ref_c_char_lm
)) stop 136
568 call f_check_c_char_dm_ar(p
)
569 if(.not
.associated(p
)) stop 137
570 if(.not
.associated(p
, a
)) stop 138
571 if(any(p
/=ref_c_char_lm
)) stop 139
572 if(any(a
/=ref_c_char_lm
)) stop 140
575 call c_check_c_char_dm_ar(p
)
576 if(.not
.associated(p
)) stop 141
577 if(.not
.associated(p
, a
)) stop 142
578 if(any(p
/=ref_c_char_lm
)) stop 143
579 if(any(a
/=ref_c_char_lm
)) stop 144
581 end subroutine check_c_char_lm
583 subroutine f_check_c_char_cm_as(a
)
584 character(kind
=c_char
, len
=m
), intent(in
) :: a(:)
586 integer(kind
=c_int16_t
) :: t
587 integer(kind
=c_signed_char
) :: k
588 integer(kind
=c_size_t
) :: e
, n
591 n
= len(a
, kind
=kind(e
))
592 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
593 t
= cfi_encode_type(CFI_type_Character
, k
)
594 if(k
<=0_c_signed_char
) stop 145
595 if(k
/=1_c_signed_char
) stop 146
597 if(int(k
, kind
=c_size_t
)/=e
) stop 148
598 if(t
/=CFI_type_char
) stop 149
599 if(any(a
/=ref_c_char_lm
)) stop 150
600 call check_tk_as(a
, t
, k
, e
, n
)
601 if(any(a
/=ref_c_char_lm
)) stop 151
603 end subroutine f_check_c_char_cm_as
605 subroutine c_check_c_char_cm_as(a
) bind(c
)
606 character(kind
=c_char
, len
=m
), intent(in
) :: a(:)
608 integer(kind
=c_int16_t
) :: t
609 integer(kind
=c_signed_char
) :: k
610 integer(kind
=c_size_t
) :: e
, n
613 n
= len(a
, kind
=kind(e
))
614 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
615 t
= cfi_encode_type(CFI_type_Character
, k
)
616 if(k
<=0_c_signed_char
) stop 152
617 if(k
/=1_c_signed_char
) stop 153
619 if(int(k
, kind
=c_size_t
)/=e
) stop 155
620 if(t
/=CFI_type_char
) stop 156
621 if(any(a
/=ref_c_char_lm
)) stop 157
622 call check_tk_as(a
, t
, k
, e
, n
)
623 if(any(a
/=ref_c_char_lm
)) stop 158
625 end subroutine c_check_c_char_cm_as
627 subroutine f_check_c_char_cm_ar(a
)
628 character(kind
=c_char
, len
=m
), intent(in
) :: a(..)
630 integer(kind
=c_int16_t
) :: t
631 integer(kind
=c_signed_char
) :: k
632 integer(kind
=c_size_t
) :: e
, n
635 n
= len(a
, kind
=kind(e
))
636 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
637 t
= cfi_encode_type(CFI_type_Character
, k
)
638 if(k
<=0_c_signed_char
) stop 159
639 if(k
/=1_c_signed_char
) stop 160
641 if(int(k
, kind
=c_size_t
)/=e
) stop 162
642 if(t
/=CFI_type_char
) stop 163
645 if(any(a
/=ref_c_char_lm
)) stop 164
649 call check_tk_ar(a
, t
, k
, e
, n
)
652 if(any(a
/=ref_c_char_lm
)) stop 166
657 end subroutine f_check_c_char_cm_ar
659 subroutine c_check_c_char_cm_ar(a
) bind(c
)
660 character(kind
=c_char
, len
=m
), intent(in
) :: a(..)
662 integer(kind
=c_int16_t
) :: t
663 integer(kind
=c_signed_char
) :: k
664 integer(kind
=c_size_t
) :: e
, n
667 n
= len(a
, kind
=kind(e
))
668 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
669 t
= cfi_encode_type(CFI_type_Character
, k
)
670 if(k
<=0_c_signed_char
) stop 168
671 if(k
/=1_c_signed_char
) stop 169
673 if(int(k
, kind
=c_size_t
)/=e
) stop 171
674 if(t
/=CFI_type_char
) stop 172
677 if(any(a
/=ref_c_char_lm
)) stop 173
681 call check_tk_ar(a
, t
, k
, e
, n
)
684 if(any(a
/=ref_c_char_lm
)) stop 175
689 end subroutine c_check_c_char_cm_ar
691 subroutine f_check_c_char_am_as(a
)
692 character(kind
=c_char
, len
=*), intent(in
) :: a(:)
694 integer(kind
=c_int16_t
) :: t
695 integer(kind
=c_signed_char
) :: k
696 integer(kind
=c_size_t
) :: e
, n
699 n
= len(a
, kind
=kind(e
))
700 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
701 t
= cfi_encode_type(CFI_type_Character
, k
)
702 if(k
<=0_c_signed_char
) stop 177
703 if(k
/=1_c_signed_char
) stop 178
705 if(int(k
, kind
=c_size_t
)/=e
) stop 180
706 if(t
/=CFI_type_char
) stop 181
707 if(any(a
/=ref_c_char_lm
)) stop 182
708 call check_tk_as(a
, t
, k
, e
, n
)
709 if(any(a
/=ref_c_char_lm
)) stop 183
711 end subroutine f_check_c_char_am_as
713 subroutine c_check_c_char_am_as(a
) bind(c
)
714 character(kind
=c_char
, len
=*), intent(in
) :: a(:)
716 integer(kind
=c_int16_t
) :: t
717 integer(kind
=c_signed_char
) :: k
718 integer(kind
=c_size_t
) :: e
, n
721 n
= len(a
, kind
=kind(e
))
722 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
723 t
= cfi_encode_type(CFI_type_Character
, k
)
724 if(k
<=0_c_signed_char
) stop 184
725 if(k
/=1_c_signed_char
) stop 185
727 if(int(k
, kind
=c_size_t
)/=e
) stop 187
728 if(t
/=CFI_type_char
) stop 188
729 if(any(a
/=ref_c_char_lm
)) stop 189
730 call check_tk_as(a
, t
, k
, e
, n
)
731 if(any(a
/=ref_c_char_lm
)) stop 190
733 end subroutine c_check_c_char_am_as
735 subroutine f_check_c_char_am_ar(a
)
736 character(kind
=c_char
, len
=*), intent(in
) :: a(..)
738 integer(kind
=c_int16_t
) :: t
739 integer(kind
=c_signed_char
) :: k
740 integer(kind
=c_size_t
) :: e
, n
743 n
= len(a
, kind
=kind(e
))
744 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
745 t
= cfi_encode_type(CFI_type_Character
, k
)
746 if(k
<=0_c_signed_char
) stop 191
747 if(k
/=1_c_signed_char
) stop 192
749 if(int(k
, kind
=c_size_t
)/=e
) stop 194
750 if(t
/=CFI_type_char
) stop 195
753 if(any(a
/=ref_c_char_lm
)) stop 196
757 call check_tk_ar(a
, t
, k
, e
, n
)
760 if(any(a
/=ref_c_char_lm
)) stop 198
765 end subroutine f_check_c_char_am_ar
767 subroutine c_check_c_char_am_ar(a
) bind(c
)
768 character(kind
=c_char
, len
=*), intent(in
) :: a(..)
770 integer(kind
=c_int16_t
) :: t
771 integer(kind
=c_signed_char
) :: k
772 integer(kind
=c_size_t
) :: e
, n
775 n
= len(a
, kind
=kind(e
))
776 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
777 t
= cfi_encode_type(CFI_type_Character
, k
)
778 if(k
<=0_c_signed_char
) stop 200
779 if(k
/=1_c_signed_char
) stop 201
781 if(int(k
, kind
=c_size_t
)/=e
) stop 203
782 if(t
/=CFI_type_char
) stop 204
785 if(any(a
/=ref_c_char_lm
)) stop 205
789 call check_tk_ar(a
, t
, k
, e
, n
)
792 if(any(a
/=ref_c_char_lm
)) stop 207
797 end subroutine c_check_c_char_am_ar
799 subroutine f_check_c_char_dm_as(a
)
800 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(:)
802 integer(kind
=c_int16_t
) :: t
803 integer(kind
=c_signed_char
) :: k
804 integer(kind
=c_size_t
) :: e
, n
807 n
= len(a
, kind
=kind(e
))
808 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
809 t
= cfi_encode_type(CFI_type_Character
, k
)
810 if(k
<=0_c_signed_char
) stop 209
811 if(k
/=1_c_signed_char
) stop 210
813 if(int(k
, kind
=c_size_t
)/=e
) stop 212
814 if(t
/=CFI_type_char
) stop 213
815 if(any(a
/=ref_c_char_lm
)) stop 214
816 call check_tk_as(a
, t
, k
, e
, n
)
817 if(any(a
/=ref_c_char_lm
)) stop 215
819 end subroutine f_check_c_char_dm_as
821 subroutine c_check_c_char_dm_as(a
) bind(c
)
822 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(:)
824 integer(kind
=c_int16_t
) :: t
825 integer(kind
=c_signed_char
) :: k
826 integer(kind
=c_size_t
) :: e
, n
829 n
= len(a
, kind
=kind(e
))
830 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
831 t
= cfi_encode_type(CFI_type_Character
, k
)
832 if(k
<=0_c_signed_char
) stop 216
833 if(k
/=1_c_signed_char
) stop 217
835 if(int(k
, kind
=c_size_t
)/=e
) stop 219
836 if(t
/=CFI_type_char
) stop 220
837 if(any(a
/=ref_c_char_lm
)) stop 221
838 call check_tk_as(a
, t
, k
, e
, n
)
839 if(any(a
/=ref_c_char_lm
)) stop 222
841 end subroutine c_check_c_char_dm_as
843 subroutine f_check_c_char_dm_ar(a
)
844 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(..)
846 integer(kind
=c_int16_t
) :: t
847 integer(kind
=c_signed_char
) :: k
848 integer(kind
=c_size_t
) :: e
, n
851 n
= len(a
, kind
=kind(e
))
852 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
853 t
= cfi_encode_type(CFI_type_Character
, k
)
854 if(k
<=0_c_signed_char
) stop 223
855 if(k
/=1_c_signed_char
) stop 224
857 if(int(k
, kind
=c_size_t
)/=e
) stop 226
858 if(t
/=CFI_type_char
) stop 227
861 if(any(a
/=ref_c_char_lm
)) stop 228
865 call check_tk_ar(a
, t
, k
, e
, n
)
868 if(any(a
/=ref_c_char_lm
)) stop 230
873 end subroutine f_check_c_char_dm_ar
875 subroutine c_check_c_char_dm_ar(a
) bind(c
)
876 character(kind
=c_char
, len
=:), pointer, intent(in
) :: a(..)
878 integer(kind
=c_int16_t
) :: t
879 integer(kind
=c_signed_char
) :: k
880 integer(kind
=c_size_t
) :: e
, n
883 n
= len(a
, kind
=kind(e
))
884 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
885 t
= cfi_encode_type(CFI_type_Character
, k
)
886 if(k
<=0_c_signed_char
) stop 232
887 if(k
/=1_c_signed_char
) stop 233
889 if(int(k
, kind
=c_size_t
)/=e
) stop 235
890 if(t
/=CFI_type_char
) stop 236
893 if(any(a
/=ref_c_char_lm
)) stop 237
897 call check_tk_ar(a
, t
, k
, e
, n
)
900 if(any(a
/=ref_c_char_lm
)) stop 239
905 end subroutine c_check_c_char_dm_ar
907 subroutine check_c_ucs4_char_l1()
908 character(kind
=c_ucs4_char
, len
=1), target
:: a(n
)
910 character(kind
=c_ucs4_char
, len
=:), pointer :: p(:)
912 a
= ref_c_ucs4_char_l1
913 call f_check_c_ucs4_char_c1_as(a
)
914 if(any(a
/=ref_c_ucs4_char_l1
)) stop 241
915 a
= ref_c_ucs4_char_l1
916 call c_check_c_ucs4_char_c1_as(a
)
917 if(any(a
/=ref_c_ucs4_char_l1
)) stop 242
918 a
= ref_c_ucs4_char_l1
919 call f_check_c_ucs4_char_c1_ar(a
)
920 if(any(a
/=ref_c_ucs4_char_l1
)) stop 243
921 a
= ref_c_ucs4_char_l1
922 call c_check_c_ucs4_char_c1_ar(a
)
923 if(any(a
/=ref_c_ucs4_char_l1
)) stop 244
924 a
= ref_c_ucs4_char_l1
925 call f_check_c_ucs4_char_a1_as(a
)
926 if(any(a
/=ref_c_ucs4_char_l1
)) stop 245
927 a
= ref_c_ucs4_char_l1
928 call c_check_c_ucs4_char_a1_as(a
)
929 if(any(a
/=ref_c_ucs4_char_l1
)) stop 246
930 a
= ref_c_ucs4_char_l1
931 call f_check_c_ucs4_char_a1_ar(a
)
932 if(any(a
/=ref_c_ucs4_char_l1
)) stop 247
933 a
= ref_c_ucs4_char_l1
934 call c_check_c_ucs4_char_a1_ar(a
)
935 if(any(a
/=ref_c_ucs4_char_l1
)) stop 248
936 a
= ref_c_ucs4_char_l1
938 call f_check_c_ucs4_char_d1_as(p
)
939 if(.not
.associated(p
)) stop 249
940 if(.not
.associated(p
, a
)) stop 250
941 if(any(p
/=ref_c_ucs4_char_l1
)) stop 251
942 if(any(a
/=ref_c_ucs4_char_l1
)) stop 252
943 a
= ref_c_ucs4_char_l1
945 call c_check_c_ucs4_char_d1_as(p
)
946 if(.not
.associated(p
)) stop 253
947 if(.not
.associated(p
, a
)) stop 254
948 if(any(p
/=ref_c_ucs4_char_l1
)) stop 255
949 if(any(a
/=ref_c_ucs4_char_l1
)) stop 256
950 a
= ref_c_ucs4_char_l1
952 call f_check_c_ucs4_char_d1_ar(p
)
953 if(.not
.associated(p
)) stop 257
954 if(.not
.associated(p
, a
)) stop 258
955 if(any(p
/=ref_c_ucs4_char_l1
)) stop 259
956 if(any(a
/=ref_c_ucs4_char_l1
)) stop 260
957 a
= ref_c_ucs4_char_l1
959 call c_check_c_ucs4_char_d1_ar(p
)
960 if(.not
.associated(p
)) stop 261
961 if(.not
.associated(p
, a
)) stop 262
962 if(any(p
/=ref_c_ucs4_char_l1
)) stop 263
963 if(any(a
/=ref_c_ucs4_char_l1
)) stop 264
965 end subroutine check_c_ucs4_char_l1
967 subroutine f_check_c_ucs4_char_c1_as(a
)
968 character(kind
=c_ucs4_char
, len
=1), intent(in
) :: a(:)
970 integer(kind
=c_int16_t
) :: t
971 integer(kind
=c_signed_char
) :: k
972 integer(kind
=c_size_t
) :: e
, n
975 n
= len(a
, kind
=kind(e
))
976 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
977 t
= cfi_encode_type(CFI_type_Character
, k
)
978 if(k
<=0_c_signed_char
) stop 265
979 if(k
/=4_c_signed_char
) stop 266
981 if(int(k
, kind
=c_size_t
)/=e
) stop 268
982 if(t
/=CFI_type_ucs4_char
) stop 269
983 if(any(a
/=ref_c_ucs4_char_l1
)) stop 270
984 call check_tk_as(a
, t
, k
, e
, n
)
985 if(any(a
/=ref_c_ucs4_char_l1
)) stop 271
987 end subroutine f_check_c_ucs4_char_c1_as
989 subroutine c_check_c_ucs4_char_c1_as(a
) bind(c
)
990 character(kind
=c_ucs4_char
, len
=1), intent(in
) :: a(:)
992 integer(kind
=c_int16_t
) :: t
993 integer(kind
=c_signed_char
) :: k
994 integer(kind
=c_size_t
) :: e
, n
997 n
= len(a
, kind
=kind(e
))
998 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
999 t
= cfi_encode_type(CFI_type_Character
, k
)
1000 if(k
<=0_c_signed_char
) stop 272
1001 if(k
/=4_c_signed_char
) stop 273
1003 if(int(k
, kind
=c_size_t
)/=e
) stop 275
1004 if(t
/=CFI_type_ucs4_char
) stop 276
1005 if(any(a
/=ref_c_ucs4_char_l1
)) stop 277
1006 call check_tk_as(a
, t
, k
, e
, n
)
1007 if(any(a
/=ref_c_ucs4_char_l1
)) stop 278
1009 end subroutine c_check_c_ucs4_char_c1_as
1011 subroutine f_check_c_ucs4_char_c1_ar(a
)
1012 character(kind
=c_ucs4_char
, len
=1), intent(in
) :: a(..)
1014 integer(kind
=c_int16_t
) :: t
1015 integer(kind
=c_signed_char
) :: k
1016 integer(kind
=c_size_t
) :: e
, n
1019 n
= len(a
, kind
=kind(e
))
1020 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1021 t
= cfi_encode_type(CFI_type_Character
, k
)
1022 if(k
<=0_c_signed_char
) stop 279
1023 if(k
/=4_c_signed_char
) stop 280
1025 if(int(k
, kind
=c_size_t
)/=e
) stop 282
1026 if(t
/=CFI_type_ucs4_char
) stop 283
1029 if(any(a
/=ref_c_ucs4_char_l1
)) stop 284
1033 call check_tk_ar(a
, t
, k
, e
, n
)
1036 if(any(a
/=ref_c_ucs4_char_l1
)) stop 286
1041 end subroutine f_check_c_ucs4_char_c1_ar
1043 subroutine c_check_c_ucs4_char_c1_ar(a
) bind(c
)
1044 character(kind
=c_ucs4_char
, len
=1), intent(in
) :: a(..)
1046 integer(kind
=c_int16_t
) :: t
1047 integer(kind
=c_signed_char
) :: k
1048 integer(kind
=c_size_t
) :: e
, n
1051 n
= len(a
, kind
=kind(e
))
1052 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1053 t
= cfi_encode_type(CFI_type_Character
, k
)
1054 if(k
<=0_c_signed_char
) stop 288
1055 if(k
/=4_c_signed_char
) stop 289
1057 if(int(k
, kind
=c_size_t
)/=e
) stop 291
1058 if(t
/=CFI_type_ucs4_char
) stop 292
1061 if(any(a
/=ref_c_ucs4_char_l1
)) stop 293
1065 call check_tk_ar(a
, t
, k
, e
, n
)
1068 if(any(a
/=ref_c_ucs4_char_l1
)) stop 295
1073 end subroutine c_check_c_ucs4_char_c1_ar
1075 subroutine f_check_c_ucs4_char_a1_as(a
)
1076 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(:)
1078 integer(kind
=c_int16_t
) :: t
1079 integer(kind
=c_signed_char
) :: k
1080 integer(kind
=c_size_t
) :: e
, n
1083 n
= len(a
, kind
=kind(e
))
1084 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1085 t
= cfi_encode_type(CFI_type_Character
, k
)
1086 if(k
<=0_c_signed_char
) stop 297
1087 if(k
/=4_c_signed_char
) stop 298
1089 if(int(k
, kind
=c_size_t
)/=e
) stop 300
1090 if(t
/=CFI_type_ucs4_char
) stop 301
1091 if(any(a
/=ref_c_ucs4_char_l1
)) stop 302
1092 call check_tk_as(a
, t
, k
, e
, n
)
1093 if(any(a
/=ref_c_ucs4_char_l1
)) stop 303
1095 end subroutine f_check_c_ucs4_char_a1_as
1097 subroutine c_check_c_ucs4_char_a1_as(a
) bind(c
)
1098 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(:)
1100 integer(kind
=c_int16_t
) :: t
1101 integer(kind
=c_signed_char
) :: k
1102 integer(kind
=c_size_t
) :: e
, n
1105 n
= len(a
, kind
=kind(e
))
1106 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1107 t
= cfi_encode_type(CFI_type_Character
, k
)
1108 if(k
<=0_c_signed_char
) stop 304
1109 if(k
/=4_c_signed_char
) stop 305
1111 if(int(k
, kind
=c_size_t
)/=e
) stop 307
1112 if(t
/=CFI_type_ucs4_char
) stop 308
1113 if(any(a
/=ref_c_ucs4_char_l1
)) stop 309
1114 call check_tk_as(a
, t
, k
, e
, n
)
1115 if(any(a
/=ref_c_ucs4_char_l1
)) stop 310
1117 end subroutine c_check_c_ucs4_char_a1_as
1119 subroutine f_check_c_ucs4_char_a1_ar(a
)
1120 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(..)
1122 integer(kind
=c_int16_t
) :: t
1123 integer(kind
=c_signed_char
) :: k
1124 integer(kind
=c_size_t
) :: e
, n
1127 n
= len(a
, kind
=kind(e
))
1128 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1129 t
= cfi_encode_type(CFI_type_Character
, k
)
1130 if(k
<=0_c_signed_char
) stop 311
1131 if(k
/=4_c_signed_char
) stop 312
1133 if(int(k
, kind
=c_size_t
)/=e
) stop 314
1134 if(t
/=CFI_type_ucs4_char
) stop 315
1137 if(any(a
/=ref_c_ucs4_char_l1
)) stop 316
1141 call check_tk_ar(a
, t
, k
, e
, n
)
1144 if(any(a
/=ref_c_ucs4_char_l1
)) stop 318
1149 end subroutine f_check_c_ucs4_char_a1_ar
1151 subroutine c_check_c_ucs4_char_a1_ar(a
) bind(c
)
1152 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(..)
1154 integer(kind
=c_int16_t
) :: t
1155 integer(kind
=c_signed_char
) :: k
1156 integer(kind
=c_size_t
) :: e
, n
1159 n
= len(a
, kind
=kind(e
))
1160 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1161 t
= cfi_encode_type(CFI_type_Character
, k
)
1162 if(k
<=0_c_signed_char
) stop 320
1163 if(k
/=4_c_signed_char
) stop 321
1165 if(int(k
, kind
=c_size_t
)/=e
) stop 323
1166 if(t
/=CFI_type_ucs4_char
) stop 324
1169 if(any(a
/=ref_c_ucs4_char_l1
)) stop 325
1173 call check_tk_ar(a
, t
, k
, e
, n
)
1176 if(any(a
/=ref_c_ucs4_char_l1
)) stop 327
1181 end subroutine c_check_c_ucs4_char_a1_ar
1183 subroutine f_check_c_ucs4_char_d1_as(a
)
1184 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(:)
1186 integer(kind
=c_int16_t
) :: t
1187 integer(kind
=c_signed_char
) :: k
1188 integer(kind
=c_size_t
) :: e
, n
1191 n
= len(a
, kind
=kind(e
))
1192 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1193 t
= cfi_encode_type(CFI_type_Character
, k
)
1194 if(k
<=0_c_signed_char
) stop 329
1195 if(k
/=4_c_signed_char
) stop 330
1197 if(int(k
, kind
=c_size_t
)/=e
) stop 332
1198 if(t
/=CFI_type_ucs4_char
) stop 333
1199 if(any(a
/=ref_c_ucs4_char_l1
)) stop 334
1200 call check_tk_as(a
, t
, k
, e
, n
)
1201 if(any(a
/=ref_c_ucs4_char_l1
)) stop 335
1203 end subroutine f_check_c_ucs4_char_d1_as
1205 subroutine c_check_c_ucs4_char_d1_as(a
) bind(c
)
1206 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(:)
1208 integer(kind
=c_int16_t
) :: t
1209 integer(kind
=c_signed_char
) :: k
1210 integer(kind
=c_size_t
) :: e
, n
1213 n
= len(a
, kind
=kind(e
))
1214 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1215 t
= cfi_encode_type(CFI_type_Character
, k
)
1216 if(k
<=0_c_signed_char
) stop 336
1217 if(k
/=4_c_signed_char
) stop 337
1219 if(int(k
, kind
=c_size_t
)/=e
) stop 339
1220 if(t
/=CFI_type_ucs4_char
) stop 340
1221 if(any(a
/=ref_c_ucs4_char_l1
)) stop 341
1222 call check_tk_as(a
, t
, k
, e
, n
)
1223 if(any(a
/=ref_c_ucs4_char_l1
)) stop 342
1225 end subroutine c_check_c_ucs4_char_d1_as
1227 subroutine f_check_c_ucs4_char_d1_ar(a
)
1228 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(..)
1230 integer(kind
=c_int16_t
) :: t
1231 integer(kind
=c_signed_char
) :: k
1232 integer(kind
=c_size_t
) :: e
, n
1235 n
= len(a
, kind
=kind(e
))
1236 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1237 t
= cfi_encode_type(CFI_type_Character
, k
)
1238 if(k
<=0_c_signed_char
) stop 343
1239 if(k
/=4_c_signed_char
) stop 344
1241 if(int(k
, kind
=c_size_t
)/=e
) stop 346
1242 if(t
/=CFI_type_ucs4_char
) stop 347
1245 if(any(a
/=ref_c_ucs4_char_l1
)) stop 348
1249 call check_tk_ar(a
, t
, k
, e
, n
)
1252 if(any(a
/=ref_c_ucs4_char_l1
)) stop 350
1257 end subroutine f_check_c_ucs4_char_d1_ar
1259 subroutine c_check_c_ucs4_char_d1_ar(a
) bind(c
)
1260 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(..)
1262 integer(kind
=c_int16_t
) :: t
1263 integer(kind
=c_signed_char
) :: k
1264 integer(kind
=c_size_t
) :: e
, n
1267 n
= len(a
, kind
=kind(e
))
1268 e
= storage_size(a
, kind
=kind(e
))/(b
*1)
1269 t
= cfi_encode_type(CFI_type_Character
, k
)
1270 if(k
<=0_c_signed_char
) stop 352
1271 if(k
/=4_c_signed_char
) stop 353
1273 if(int(k
, kind
=c_size_t
)/=e
) stop 355
1274 if(t
/=CFI_type_ucs4_char
) stop 356
1277 if(any(a
/=ref_c_ucs4_char_l1
)) stop 357
1281 call check_tk_ar(a
, t
, k
, e
, n
)
1284 if(any(a
/=ref_c_ucs4_char_l1
)) stop 359
1289 end subroutine c_check_c_ucs4_char_d1_ar
1291 subroutine check_c_ucs4_char_lm()
1292 character(kind
=c_ucs4_char
, len
=m
), target
:: a(n
)
1294 character(kind
=c_ucs4_char
, len
=:), pointer :: p(:)
1296 a
= ref_c_ucs4_char_lm
1297 call f_check_c_ucs4_char_cm_as(a
)
1298 if(any(a
/=ref_c_ucs4_char_lm
)) stop 361
1299 a
= ref_c_ucs4_char_lm
1300 call c_check_c_ucs4_char_cm_as(a
)
1301 if(any(a
/=ref_c_ucs4_char_lm
)) stop 362
1302 a
= ref_c_ucs4_char_lm
1303 call f_check_c_ucs4_char_cm_ar(a
)
1304 if(any(a
/=ref_c_ucs4_char_lm
)) stop 363
1305 a
= ref_c_ucs4_char_lm
1306 call c_check_c_ucs4_char_cm_ar(a
)
1307 if(any(a
/=ref_c_ucs4_char_lm
)) stop 364
1308 a
= ref_c_ucs4_char_lm
1309 call f_check_c_ucs4_char_am_as(a
)
1310 if(any(a
/=ref_c_ucs4_char_lm
)) stop 365
1311 a
= ref_c_ucs4_char_lm
1312 call c_check_c_ucs4_char_am_as(a
)
1313 if(any(a
/=ref_c_ucs4_char_lm
)) stop 366
1314 a
= ref_c_ucs4_char_lm
1315 call f_check_c_ucs4_char_am_ar(a
)
1316 if(any(a
/=ref_c_ucs4_char_lm
)) stop 367
1317 a
= ref_c_ucs4_char_lm
1318 call c_check_c_ucs4_char_am_ar(a
)
1319 if(any(a
/=ref_c_ucs4_char_lm
)) stop 368
1320 a
= ref_c_ucs4_char_lm
1322 call f_check_c_ucs4_char_dm_as(p
)
1323 if(.not
.associated(p
)) stop 369
1324 if(.not
.associated(p
, a
)) stop 370
1325 if(any(p
/=ref_c_ucs4_char_lm
)) stop 371
1326 if(any(a
/=ref_c_ucs4_char_lm
)) stop 372
1327 a
= ref_c_ucs4_char_lm
1329 call c_check_c_ucs4_char_dm_as(p
)
1330 if(.not
.associated(p
)) stop 373
1331 if(.not
.associated(p
, a
)) stop 374
1332 if(any(p
/=ref_c_ucs4_char_lm
)) stop 375
1333 if(any(a
/=ref_c_ucs4_char_lm
)) stop 376
1334 a
= ref_c_ucs4_char_lm
1336 call f_check_c_ucs4_char_dm_ar(p
)
1337 if(.not
.associated(p
)) stop 377
1338 if(.not
.associated(p
, a
)) stop 378
1339 if(any(p
/=ref_c_ucs4_char_lm
)) stop 379
1340 if(any(a
/=ref_c_ucs4_char_lm
)) stop 380
1341 a
= ref_c_ucs4_char_lm
1343 call c_check_c_ucs4_char_dm_ar(p
)
1344 if(.not
.associated(p
)) stop 381
1345 if(.not
.associated(p
, a
)) stop 382
1346 if(any(p
/=ref_c_ucs4_char_lm
)) stop 383
1347 if(any(a
/=ref_c_ucs4_char_lm
)) stop 384
1349 end subroutine check_c_ucs4_char_lm
1351 subroutine f_check_c_ucs4_char_cm_as(a
)
1352 character(kind
=c_ucs4_char
, len
=m
), intent(in
) :: a(:)
1354 integer(kind
=c_int16_t
) :: t
1355 integer(kind
=c_signed_char
) :: k
1356 integer(kind
=c_size_t
) :: e
, n
1359 n
= len(a
, kind
=kind(e
))
1360 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1361 t
= cfi_encode_type(CFI_type_Character
, k
)
1362 if(k
<=0_c_signed_char
) stop 385
1363 if(k
/=4_c_signed_char
) stop 386
1365 if(int(k
, kind
=c_size_t
)/=e
) stop 388
1366 if(t
/=CFI_type_ucs4_char
) stop 389
1367 if(any(a
/=ref_c_ucs4_char_lm
)) stop 390
1368 call check_tk_as(a
, t
, k
, e
, n
)
1369 if(any(a
/=ref_c_ucs4_char_lm
)) stop 391
1371 end subroutine f_check_c_ucs4_char_cm_as
1373 subroutine c_check_c_ucs4_char_cm_as(a
) bind(c
)
1374 character(kind
=c_ucs4_char
, len
=m
), intent(in
) :: a(:)
1376 integer(kind
=c_int16_t
) :: t
1377 integer(kind
=c_signed_char
) :: k
1378 integer(kind
=c_size_t
) :: e
, n
1381 n
= len(a
, kind
=kind(e
))
1382 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1383 t
= cfi_encode_type(CFI_type_Character
, k
)
1384 if(k
<=0_c_signed_char
) stop 392
1385 if(k
/=4_c_signed_char
) stop 393
1387 if(int(k
, kind
=c_size_t
)/=e
) stop 395
1388 if(t
/=CFI_type_ucs4_char
) stop 396
1389 if(any(a
/=ref_c_ucs4_char_lm
)) stop 397
1390 call check_tk_as(a
, t
, k
, e
, n
)
1391 if(any(a
/=ref_c_ucs4_char_lm
)) stop 398
1393 end subroutine c_check_c_ucs4_char_cm_as
1395 subroutine f_check_c_ucs4_char_cm_ar(a
)
1396 character(kind
=c_ucs4_char
, len
=m
), intent(in
) :: a(..)
1398 integer(kind
=c_int16_t
) :: t
1399 integer(kind
=c_signed_char
) :: k
1400 integer(kind
=c_size_t
) :: e
, n
1403 n
= len(a
, kind
=kind(e
))
1404 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1405 t
= cfi_encode_type(CFI_type_Character
, k
)
1406 if(k
<=0_c_signed_char
) stop 399
1407 if(k
/=4_c_signed_char
) stop 400
1409 if(int(k
, kind
=c_size_t
)/=e
) stop 402
1410 if(t
/=CFI_type_ucs4_char
) stop 403
1413 if(any(a
/=ref_c_ucs4_char_lm
)) stop 404
1417 call check_tk_ar(a
, t
, k
, e
, n
)
1420 if(any(a
/=ref_c_ucs4_char_lm
)) stop 406
1425 end subroutine f_check_c_ucs4_char_cm_ar
1427 subroutine c_check_c_ucs4_char_cm_ar(a
) bind(c
)
1428 character(kind
=c_ucs4_char
, len
=m
), intent(in
) :: a(..)
1430 integer(kind
=c_int16_t
) :: t
1431 integer(kind
=c_signed_char
) :: k
1432 integer(kind
=c_size_t
) :: e
, n
1435 n
= len(a
, kind
=kind(e
))
1436 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1437 t
= cfi_encode_type(CFI_type_Character
, k
)
1438 if(k
<=0_c_signed_char
) stop 408
1439 if(k
/=4_c_signed_char
) stop 409
1441 if(int(k
, kind
=c_size_t
)/=e
) stop 411
1442 if(t
/=CFI_type_ucs4_char
) stop 412
1445 if(any(a
/=ref_c_ucs4_char_lm
)) stop 413
1449 call check_tk_ar(a
, t
, k
, e
, n
)
1452 if(any(a
/=ref_c_ucs4_char_lm
)) stop 415
1457 end subroutine c_check_c_ucs4_char_cm_ar
1459 subroutine f_check_c_ucs4_char_am_as(a
)
1460 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(:)
1462 integer(kind
=c_int16_t
) :: t
1463 integer(kind
=c_signed_char
) :: k
1464 integer(kind
=c_size_t
) :: e
, n
1467 n
= len(a
, kind
=kind(e
))
1468 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1469 t
= cfi_encode_type(CFI_type_Character
, k
)
1470 if(k
<=0_c_signed_char
) stop 417
1471 if(k
/=4_c_signed_char
) stop 418
1473 if(int(k
, kind
=c_size_t
)/=e
) stop 420
1474 if(t
/=CFI_type_ucs4_char
) stop 421
1475 if(any(a
/=ref_c_ucs4_char_lm
)) stop 422
1476 call check_tk_as(a
, t
, k
, e
, n
)
1477 if(any(a
/=ref_c_ucs4_char_lm
)) stop 423
1479 end subroutine f_check_c_ucs4_char_am_as
1481 subroutine c_check_c_ucs4_char_am_as(a
) bind(c
)
1482 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(:)
1484 integer(kind
=c_int16_t
) :: t
1485 integer(kind
=c_signed_char
) :: k
1486 integer(kind
=c_size_t
) :: e
, n
1489 n
= len(a
, kind
=kind(e
))
1490 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1491 t
= cfi_encode_type(CFI_type_Character
, k
)
1492 if(k
<=0_c_signed_char
) stop 424
1493 if(k
/=4_c_signed_char
) stop 425
1495 if(int(k
, kind
=c_size_t
)/=e
) stop 427
1496 if(t
/=CFI_type_ucs4_char
) stop 428
1497 if(any(a
/=ref_c_ucs4_char_lm
)) stop 429
1498 call check_tk_as(a
, t
, k
, e
, n
)
1499 if(any(a
/=ref_c_ucs4_char_lm
)) stop 430
1501 end subroutine c_check_c_ucs4_char_am_as
1503 subroutine f_check_c_ucs4_char_am_ar(a
)
1504 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(..)
1506 integer(kind
=c_int16_t
) :: t
1507 integer(kind
=c_signed_char
) :: k
1508 integer(kind
=c_size_t
) :: e
, n
1511 n
= len(a
, kind
=kind(e
))
1512 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1513 t
= cfi_encode_type(CFI_type_Character
, k
)
1514 if(k
<=0_c_signed_char
) stop 431
1515 if(k
/=4_c_signed_char
) stop 432
1517 if(int(k
, kind
=c_size_t
)/=e
) stop 434
1518 if(t
/=CFI_type_ucs4_char
) stop 435
1521 if(any(a
/=ref_c_ucs4_char_lm
)) stop 436
1525 call check_tk_ar(a
, t
, k
, e
, n
)
1528 if(any(a
/=ref_c_ucs4_char_lm
)) stop 438
1533 end subroutine f_check_c_ucs4_char_am_ar
1535 subroutine c_check_c_ucs4_char_am_ar(a
) bind(c
)
1536 character(kind
=c_ucs4_char
, len
=*), intent(in
) :: a(..)
1538 integer(kind
=c_int16_t
) :: t
1539 integer(kind
=c_signed_char
) :: k
1540 integer(kind
=c_size_t
) :: e
, n
1543 n
= len(a
, kind
=kind(e
))
1544 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1545 t
= cfi_encode_type(CFI_type_Character
, k
)
1546 if(k
<=0_c_signed_char
) stop 440
1547 if(k
/=4_c_signed_char
) stop 441
1549 if(int(k
, kind
=c_size_t
)/=e
) stop 443
1550 if(t
/=CFI_type_ucs4_char
) stop 444
1553 if(any(a
/=ref_c_ucs4_char_lm
)) stop 445
1557 call check_tk_ar(a
, t
, k
, e
, n
)
1560 if(any(a
/=ref_c_ucs4_char_lm
)) stop 447
1565 end subroutine c_check_c_ucs4_char_am_ar
1567 subroutine f_check_c_ucs4_char_dm_as(a
)
1568 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(:)
1570 integer(kind
=c_int16_t
) :: t
1571 integer(kind
=c_signed_char
) :: k
1572 integer(kind
=c_size_t
) :: e
, n
1575 n
= len(a
, kind
=kind(e
))
1576 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1577 t
= cfi_encode_type(CFI_type_Character
, k
)
1578 if(k
<=0_c_signed_char
) stop 449
1579 if(k
/=4_c_signed_char
) stop 450
1581 if(int(k
, kind
=c_size_t
)/=e
) stop 452
1582 if(t
/=CFI_type_ucs4_char
) stop 453
1583 if(any(a
/=ref_c_ucs4_char_lm
)) stop 454
1584 call check_tk_as(a
, t
, k
, e
, n
)
1585 if(any(a
/=ref_c_ucs4_char_lm
)) stop 455
1587 end subroutine f_check_c_ucs4_char_dm_as
1589 subroutine c_check_c_ucs4_char_dm_as(a
) bind(c
)
1590 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(:)
1592 integer(kind
=c_int16_t
) :: t
1593 integer(kind
=c_signed_char
) :: k
1594 integer(kind
=c_size_t
) :: e
, n
1597 n
= len(a
, kind
=kind(e
))
1598 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1599 t
= cfi_encode_type(CFI_type_Character
, k
)
1600 if(k
<=0_c_signed_char
) stop 456
1601 if(k
/=4_c_signed_char
) stop 457
1603 if(int(k
, kind
=c_size_t
)/=e
) stop 459
1604 if(t
/=CFI_type_ucs4_char
) stop 460
1605 if(any(a
/=ref_c_ucs4_char_lm
)) stop 461
1606 call check_tk_as(a
, t
, k
, e
, n
)
1607 if(any(a
/=ref_c_ucs4_char_lm
)) stop 462
1609 end subroutine c_check_c_ucs4_char_dm_as
1611 subroutine f_check_c_ucs4_char_dm_ar(a
)
1612 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(..)
1614 integer(kind
=c_int16_t
) :: t
1615 integer(kind
=c_signed_char
) :: k
1616 integer(kind
=c_size_t
) :: e
, n
1619 n
= len(a
, kind
=kind(e
))
1620 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1621 t
= cfi_encode_type(CFI_type_Character
, k
)
1622 if(k
<=0_c_signed_char
) stop 463
1623 if(k
/=4_c_signed_char
) stop 464
1625 if(int(k
, kind
=c_size_t
)/=e
) stop 466
1626 if(t
/=CFI_type_ucs4_char
) stop 467
1629 if(any(a
/=ref_c_ucs4_char_lm
)) stop 468
1633 call check_tk_ar(a
, t
, k
, e
, n
)
1636 if(any(a
/=ref_c_ucs4_char_lm
)) stop 470
1641 end subroutine f_check_c_ucs4_char_dm_ar
1643 subroutine c_check_c_ucs4_char_dm_ar(a
) bind(c
)
1644 character(kind
=c_ucs4_char
, len
=:), pointer, intent(in
) :: a(..)
1646 integer(kind
=c_int16_t
) :: t
1647 integer(kind
=c_signed_char
) :: k
1648 integer(kind
=c_size_t
) :: e
, n
1651 n
= len(a
, kind
=kind(e
))
1652 e
= storage_size(a
, kind
=kind(e
))/(b
*m
)
1653 t
= cfi_encode_type(CFI_type_Character
, k
)
1654 if(k
<=0_c_signed_char
) stop 472
1655 if(k
/=4_c_signed_char
) stop 473
1657 if(int(k
, kind
=c_size_t
)/=e
) stop 475
1658 if(t
/=CFI_type_ucs4_char
) stop 476
1661 if(any(a
/=ref_c_ucs4_char_lm
)) stop 477
1665 call check_tk_ar(a
, t
, k
, e
, n
)
1668 if(any(a
/=ref_c_ucs4_char_lm
)) stop 479
1673 end subroutine c_check_c_ucs4_char_dm_ar
1675 end module iso_check_m
1679 use :: iso_check_m
, only
: &
1682 check_c_ucs4_char_l1
, &
1683 check_c_ucs4_char_lm
1687 call check_c_char_l1()
1688 call check_c_char_lm()
1690 !call check_c_ucs4_char_l1()
1691 !call check_c_ucs4_char_lm()