1! { dg-do run } 2! 3! PR fortran/38669 4! Loop bounds temporaries used before being defined for elemental subroutines 5! 6! Original testcase by Harald Anlauf <anlauf@gmx.de> 7 8program gfcbu84_main 9 implicit none 10 integer :: jplev, k_lev 11 integer :: p(42) 12 real :: r(42) 13 integer, pointer :: q(:) 14 jplev = 42 15 k_lev = 1 16 call random_number (r) 17 p = 41 * r + 1 18 allocate (q(jplev)) 19 20 q = 0 21 call tq_tvgh (q(k_lev:), p(k_lev:)) 22 if (any (p /= q)) call abort 23 24 q = 0 25 call tq_tvgh (q(k_lev:), (p(k_lev:))) 26 if (any (p /= q)) call abort 27 28 q = 0 29 call tq_tvgh (q(k_lev:), (p(p(k_lev:)))) 30 if (any (p(p) /= q)) call abort 31 32 deallocate (q) 33 34 contains 35 elemental subroutine tq_tvgh (t, p) 36 integer ,intent (out) :: t 37 integer ,intent (in) :: p 38 t=p 39 end subroutine tq_tvgh 40end program gfcbu84_main 41