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