1! { dg-do run }
2!
3! Fixes problem setting CHARACTER KIND expressions in PDT components
4! and resolution of intrinsic functions and numeric expressions.
5!
6! Contributed by FortranFan on clf thread "Parameterized Derived Types
7! make first appearance in gfortran 8.0.0"
8!
9program p
10   use, intrinsic :: iso_fortran_env, only : CK => character_kinds
11   implicit none
12   character(kind = 4), parameter :: c = 'a'
13   character(kind = 4), parameter :: hello = "Hello World!"
14   type :: pdt_t(k,l)
15      integer, kind :: k = CK(1)
16      integer, len :: l
17      character(kind=k,len=l) :: s
18   end type
19   type(pdt_t(l=12)) :: foo
20   type(pdt_t(k = kind (c), l=12)) :: foo_4
21
22   foo%s = "Hello World!"
23   if (foo%s .ne. "Hello World!") STOP 1
24   if (KIND (foo%s) .ne. 1) STOP 2
25   if (len (foo%s) .ne. 12) STOP 3
26
27   foo_4%s = hello
28   if (foo_4%s .ne. hello) STOP 4
29   if (KIND (foo_4%s) .ne. 4) STOP 5
30   if (len (foo_4%s) .ne. 12) STOP 6
31end program
32