[Bug fortran/41242] [4.5 Regression] procedure pointer rejected (related to user-defined assignment?)

pault at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Sep 6 07:04:00 GMT 2009



------- 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



More information about the Gcc-bugs mailing list