[Bug fortran/41139] [4.5 Regression] a procedure pointer call as actual argument
janus at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Aug 21 15:11:00 GMT 2009
------- Comment #7 from janus at gcc dot gnu dot org 2009-08-21 15:11 -------
(In reply to comment #4)
> D.1571 = o.f;
> D.1572 = D.1571 (&C.1569, &C.1570);
> g = (logical(kind=4)) greater (&C.1568, &&D.1572);
Btw, it seems unnecessary to me that every PPC call generates a temporary
(D.1571 is this case). This is fixed by the following patchlet:
Index: gcc/fortran/trans-expr.c
===================================================================
--- gcc/fortran/trans-expr.c (revision 150987)
+++ gcc/fortran/trans-expr.c (working copy)
@@ -3512,8 +3513,7 @@ gfc_get_proc_ptr_comp (gfc_se *se, gfc_e
e2 = gfc_copy_expr (e);
e2->expr_type = EXPR_VARIABLE;
gfc_conv_expr (&comp_se, e2);
- comp_se.expr = build_fold_addr_expr_loc (input_location, comp_se.expr);
- return gfc_evaluate_now (comp_se.expr, &se->pre);
+ return build_fold_addr_expr_loc (input_location, comp_se.expr);
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41139
More information about the Gcc-bugs
mailing list