------- Comment #11 from janus at gcc dot gnu dot org 2009-08-21 20:27 ------- Here is another variant of the test case which fails at runtime:
PROGRAM test type :: t PROCEDURE(three), POINTER, nopass :: f end type type(t) :: o logical :: g o%f => three g=greater(4.,o%f()) print *,g CONTAINS REAL FUNCTION three() three = 3. END FUNCTION LOGICAL FUNCTION greater(x,y) REAL, INTENT(in) :: x, y print *,"greater:",x,y greater = (x > y) END FUNCTION greater END PROGRAM test The dump shows: g = (logical(kind=4)) greater (&C.1561, &o.f); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41139