44 lines
956 B
Fortran
44 lines
956 B
Fortran
! { dg-do run }
|
|
!
|
|
! Tests the fix for PR82978 in which all the parameterized string
|
|
! lengths with the same value of parameter 'k' had the same value
|
|
! regardless of the value of 'l'. In this testcase, the length for
|
|
! 'l' = 5 was taken.
|
|
!
|
|
! Contributed by Fritz Reese <foreese@gcc.gnu.org>
|
|
!
|
|
implicit none
|
|
|
|
type :: pdt_t(k, l)
|
|
integer, kind :: k
|
|
integer, len :: l
|
|
character(kind=k,len=l) :: chr
|
|
integer :: i(l)
|
|
end type
|
|
|
|
type(pdt_t(1, 4)) :: x1
|
|
type(pdt_t(1, 5)) :: x2
|
|
type(pdt_t(4, 5)) :: x3
|
|
|
|
call test (x1, 4)
|
|
call test (x2, 5)
|
|
|
|
! Kind tests appear because of problem identified in comment #!
|
|
! due to Dominque d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
if (kind (x2%chr) .ne. 1) STOP 1
|
|
if (kind (x3%chr) .ne. 4) STOP 2
|
|
|
|
contains
|
|
|
|
subroutine test (x, i)
|
|
type(pdt_t(1, *)) :: x
|
|
integer :: i
|
|
|
|
if (x%l .ne. i) STOP 3
|
|
if (len(x%chr) .ne. i) STOP 4
|
|
if (size(x%i,1) .ne. i) STOP 5
|
|
end subroutine
|
|
|
|
end
|