5 ! Contributed by Harald Anlauf
14 end subroutine inc_eval
21 function f(x
) ! Should be implicit pure
27 function g(x
) ! Should NOT be implicit pure
39 real :: x
= 1, y
= 1, t
, u
, v
, w
40 if (neval
/= 0) call abort ()
42 if (neval
/= 0) call abort ()
43 u
= f(x
)*f(y
) + f(x
)*f(y
)
44 if (neval
/= 0) call abort ()
46 if (neval
/= 2) call abort ()
47 w
= g(x
)*g(y
) + g(x
)*g(y
)
48 if (neval
/= 6) call abort ()
49 if (t
/= 1.0 .or
. u
/= 2.0 .or
. v
/= 1.0 .or
. w
/= 2) call abort ()
50 end program gfcbug114a
52 ! { dg-final { scan-module "b" "IMPLICIT_PURE" } }