https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68569
--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- (In reply to Nicolas Koenig from comment #4) > > + if (e->ts.type == BT_CHARACTER && e->ts.u.cl->length > + && e->ts.u.cl->length->expr_type == EXPR_VARIABLE) > + gfc_error("Nonconstant length character at %L in DATA statement", > + &e->where); > + > + > if (e->rank == 0 || has_pointer) > { > mpz_init_set_ui (size, 1); Does this wirk if the length is n-1? Maybe comparing against the length being constant would be better.