https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91784

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2019-09-16
                 CC|                            |kargl at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |kargl at gcc dot gnu.org
   Target Milestone|---                         |9.3
     Ever confirmed|0                           |1

--- Comment #1 from kargl at gcc dot gnu.org ---
Ugh.  I have a patch that fixes this one, too.
I think, however, that we're missing a simplification
step while matching the array constructor.

(Watch for copy-n-paste tab to spaces corruption)

Index: gcc/fortran/simplify.c
===================================================================
--- gcc/fortran/simplify.c      (revision 275730)
+++ gcc/fortran/simplify.c      (working copy)
@@ -8508,10 +8508,10 @@ gfc_convert_constant (gfc_expr *e, bt type, int kind)
            {
              if (c->expr->expr_type == EXPR_ARRAY)
                tmp = gfc_convert_constant (c->expr, type, kind);
-             else if (c->expr->expr_type == EXPR_OP
-                      && c->expr->value.op.op == INTRINSIC_PARENTHESES)
+             else if (c->expr->expr_type == EXPR_OP)
                {
-                 gfc_simplify_expr (c->expr, 1);
+                 if (!gfc_simplify_expr (c->expr, 1))
+                   return &gfc_bad_expr;
                  tmp = f (c->expr, kind);
                }
              else

Reply via email to