------- Comment #3 from pault at gcc dot gnu dot org 2009-09-06 07:04 ------- (In reply to comment #2)
Why there is a dependence on the preceding statement, I have no idea. However, expr_type is not being set to EXPR_PPC, as the following shows (causes lots of failures by the way :-() Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 151449) +++ gcc/fortran/resolve.c (working copy) @@ -5101,6 +5101,7 @@ gfc_resolve_expr (gfc_expr *e) { gfc_try t; + gfc_component *comp; if (e == NULL) return SUCCESS; @@ -5113,6 +5114,9 @@ case EXPR_FUNCTION: case EXPR_VARIABLE: + if (gfc_is_proc_ptr_comp (e, &comp) + && (resolve_expr_ppc (e) == SUCCESS)) + return SUCCESS; if (check_host_association (e)) t = resolve_function (e); I strongly suspect the patch of code in primary.c (gfc_match_varspec) that deals with these things but I cannot quite see why at the present. Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41242