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

--- Comment #8 from janus at gcc dot gnu.org 2011-09-05 13:14:27 UTC ---
(In reply to comment #6)
> That should then also take care of:
> 
>   rect = rectangle (1.0, 2.0, get_my_area)
> 
> which had the same issue, except that it is currently rejected with:
> 
>   Error: Function 'get_my_area' requires an argument list at (1)
> 
> However, if I read the standard correctly (F2008, 4.5.10 Construction of
> derived-type values), it should be valid:

Yes. The false error demanding an argument list is cured by:


Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c    (revision 178527)
+++ gcc/fortran/primary.c    (working copy)
@@ -2418,7 +2418,10 @@ gfc_match_structure_constructor (gfc_symbol *sym,
         }

       /* Match the current initializer expression.  */
+      if (this_comp->attr.proc_pointer)
+        gfc_matching_procptr_assignment = 1;
       m = gfc_match_expr (&comp_tail->val);
+      gfc_matching_procptr_assignment = 0;
       if (m == MATCH_NO)
         goto syntax;
       if (m == MATCH_ERROR)

Reply via email to