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