http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51081

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #7 from janus at gcc dot gnu.org 2012-07-18 12:54:32 UTC ---
(In reply to comment #6)
> ToDo: Fix the bogus errors about INT and INT2, cf. comment 2 and 3.

The following patch makes the test case in comment #1 work:

Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c    (revision 189608)
+++ gcc/fortran/primary.c    (working copy)
@@ -2843,9 +2843,6 @@ gfc_match_rvalue (gfc_expr **result)
         /* Parse functions returning a procptr.  */
         goto function0;

-      if (gfc_is_intrinsic (sym, 0, gfc_current_locus)
-          || gfc_is_intrinsic (sym, 1, gfc_current_locus))
-        sym->attr.intrinsic = 1;
       e = gfc_get_expr ();
       e->expr_type = EXPR_VARIABLE;
       e->symtree = symtree;


However, it regresses on proc_ptr_{1,6,11,12,15}.f90 and sizeof_proc.f90.

Surely the setting of attr.intrinsic comes too early in gfc_match_rvalue. It
probably should be deferred to resolution stage, where we know about the
presence of the internal proc.

Reply via email to