3 ! Fixes problem setting CHARACTER KIND expressions in PDT components
4 ! and resolution of intrinsic functions and numeric expressions.
6 ! Contributed by FortranFan on clf thread "Parameterized Derived Types
7 ! make first appearance in gfortran 8.0.0"
10 use, intrinsic :: iso_fortran_env, only : CK => character_kinds
12 character(kind = 4), parameter :: c = 'a'
13 character(kind = 4), parameter :: hello = "Hello World!"
15 integer, kind :: k = CK(1)
17 character(kind=k,len=l) :: s
19 type(pdt_t(l=12)) :: foo
20 type(pdt_t(k = kind (c), l=12)) :: foo_4
22 foo%s = "Hello World!"
23 if (foo%s .ne. "Hello World!") call abort
24 if (KIND (foo%s) .ne. 1) call abort
25 if (len (foo%s) .ne. 12) call abort
28 if (foo_4%s .ne. hello) call abort
29 if (KIND (foo_4%s) .ne. 4) call abort
30 if (len (foo_4%s) .ne. 12) call abort