! { dg-do run } ! ! Test the fix for PR40737 comment 17 as part of the overall fix for PR34640. ! ! Contributed by Josh Hykes ! module test_mod ! type t1 character(8) :: string end type t1 ! type t2 integer :: tab type(t1), pointer :: fp(:) end type t2 ! type t3 integer :: tab type(t2), pointer :: as end type t3 ! type(t3), pointer :: as_typ(:) => null() ! character(8), pointer, public :: p(:) ! contains ! subroutine as_set_alias (i) ! implicit none ! integer, intent(in) :: i ! allocate (as_typ(2)) allocate (as_typ(1)%as) allocate (as_typ(1)%as%fp(2), source = [t1("abcdefgh"),t1("ijklmnop")]) p => as_typ(i)%as%fp(:)%string ! end subroutine as_set_alias ! end module test_mod program test_prog use test_mod call as_set_alias(1) if (any (p .ne. ["abcdefgh","ijklmnop"])) STOP 1 deallocate (as_typ(1)%as%fp) deallocate (as_typ(1)%as) deallocate (as_typ) end program test_prog