blob: 856a933863a41ac133451d12836bc9b940ee6899 [file] [log] [blame]
! { dg-do run }
!
! Fixes problem setting CHARACTER KIND expressions in PDT components
! and resolution of intrinsic functions and numeric expressions.
!
! Contributed by FortranFan on clf thread "Parameterized Derived Types
! make first appearance in gfortran 8.0.0"
!
program p
use, intrinsic :: iso_fortran_env, only : CK => character_kinds
implicit none
character(kind = 4), parameter :: c = 'a'
character(kind = 4), parameter :: hello = "Hello World!"
type :: pdt_t(k,l)
integer, kind :: k = CK(1)
integer, len :: l
character(kind=k,len=l) :: s
end type
type(pdt_t(l=12)) :: foo
type(pdt_t(k = kind (c), l=12)) :: foo_4
foo%s = "Hello World!"
if (foo%s .ne. "Hello World!") STOP 1
if (KIND (foo%s) .ne. 1) STOP 2
if (len (foo%s) .ne. 12) STOP 3
foo_4%s = hello
if (foo_4%s .ne. hello) STOP 4
if (KIND (foo_4%s) .ne. 4) STOP 5
if (len (foo_4%s) .ne. 12) STOP 6
end program