On Mon, Apr 02, 2018 at 02:05:29PM +0200, Thomas König wrote: > + if (as->type == AS_EXPLICIT) > + { > + for (int i = 0; i < as->rank; i++) > + { > + gfc_expr *e, *n; > + e = as->lower[i]; > + if (e->expr_type != EXPR_CONSTANT) > + { > + n = gfc_copy_expr (e); > + gfc_simplify_expr (n, 1); > + if (n->expr_type == EXPR_CONSTANT) > + gfc_replace_expr (e, n); else gfc_free_expr (n); > + } > + e = as->upper[i]; > + if (e->expr_type != EXPR_CONSTANT) > + { > + n = gfc_copy_expr (e); > + gfc_simplify_expr (n, 1); > + if (n->expr_type == EXPR_CONSTANT) > + gfc_replace_expr (e, n); else gfc_free_expr (n);
> + } > + } > + } Don't you need the above changes to avoid leaking memory? -- Steve