1! PR middle-end/49308
2! { dg-do compile }
3! { dg-options "-O2 -funroll-loops -g" }
4
5subroutine foo(n, b, d, e)
6  type t
7    integer :: f
8  end type t
9  type s
10    type(t), pointer :: g
11  end type s
12  type u
13    type(s), dimension(:), pointer :: h
14  end type
15  integer :: i, k, n
16  type(u), pointer :: a, e
17  character(len=250) :: b, c, d
18  logical :: l
19  do i = 1, n
20    j = i - 1
21    if (j/=0) c = trim(b) // adjustl(d(j))
22  end do
23  a => e
24  do k = 1, size(a%h)
25     l = (a%h(k)%g%f == a%h(1)%g%f)
26     if (.not.(l)) call bar()
27  enddo
28end subroutine foo
29