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

--- Comment #3 from janus at gcc dot gnu.org 2011-09-17 17:44:25 UTC ---
I think the problem is that the structure constructor is resolved too early
(already when parsing the corresponding source line, where 'aproc' is not known
yet).

Here is a simple patch to avoid this:


Index: gcc/fortran/expr.c
===================================================================
--- gcc/fortran/expr.c    (revision 178927)
+++ gcc/fortran/expr.c    (working copy)
@@ -2654,7 +2654,6 @@ gfc_match_init_expr (gfc_expr **result)
 {
   gfc_expr *expr;
   match m;
-  gfc_try t;

   expr = NULL;

@@ -2667,14 +2666,6 @@ gfc_match_init_expr (gfc_expr **result)
       return m;
     }

-  t = gfc_reduce_init_expr (expr);
-  if (t != SUCCESS)
-    {
-      gfc_free_expr (expr);
-      gfc_init_expr_flag = false;
-      return MATCH_ERROR;
-    }
-
   *result = expr;
   gfc_init_expr_flag = false;



It cures both test cases, but I'm pretty sure it will have quite a number of
testsuite failures (haven't checked yet). If we remove it here,
'gfc_reduce_init_expr' should be called somewhere at resolution stage, of
course! We just need a suitable place for doing this ...

Reply via email to