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

janus at gcc dot gnu.org changed:

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

--- Comment #3 from janus at gcc dot gnu.org ---
The following patch is sufficient to fix it on 4.8:


Index: gcc/fortran/simplify.c
===================================================================
--- gcc/fortran/simplify.c    (revision 208401)
+++ gcc/fortran/simplify.c    (working copy)
@@ -5528,7 +5528,7 @@ gfc_simplify_shape (gfc_expr *source, gfc_expr *ki
       if (e == &gfc_bad_expr || range_check (e, "SHAPE") == &gfc_bad_expr)
     {
       gfc_free_expr (result);
-      if (t)
+      if (t == SUCCESS)
         gfc_clear_shape (shape, source->rank);
       return &gfc_bad_expr;
     }
@@ -5536,7 +5536,7 @@ gfc_simplify_shape (gfc_expr *source, gfc_expr *ki
       gfc_constructor_append_expr (&result->value.constructor, e, NULL);
     }

-  if (t)
+  if (t == SUCCESS)
     gfc_clear_shape (shape, source->rank);

   return result;


On trunk, 't' was changed from 'gfc_try' to bool in r197682, which also fixed
the problem.

Reply via email to