! { 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