From 6f877db5b12d6a31d2efb1a6db565dd0d5deeda3 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Thu, 15 Dec 2011 16:25:32 +0100 Subject: [PATCH] re PR fortran/51550 (ICE in gfc_get_derived_type, at fortran/trans-types.c:2401) 2011-12-15 Tobias Burnus PR fortran/51550 PR fortran/47545 PR fortran/49050 PR fortran/51075 * resolve.c (resolve_fl_derived0): Print not-implemented error for deferred-length character components. From-SVN: r182373 --- gcc/fortran/ChangeLog | 9 +++++++++ gcc/fortran/resolve.c | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 313336c48997..c054e70b9e44 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2011-12-15 Tobias Burnus + + PR fortran/51550 + PR fortran/47545 + PR fortran/49050 + PR fortran/51075 + * resolve.c (resolve_fl_derived0): Print not-implemented error + for deferred-length character components. + 2011-12-11 Tobias Burnus PR fortran/50923 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index aed4625980e9..7414db0c5d5b 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -11397,6 +11397,14 @@ resolve_fl_derived0 (gfc_symbol *sym) for (c = sym->components; c != NULL; c = c->next) { + /* See PRs 51550, 47545, 48654, 49050, 51075 - and 45170. */ + if (c->ts.type == BT_CHARACTER && c->ts.deferred) + { + gfc_error ("Deferred-length character component '%s' at %L is not " + "yet supported", c->name, &c->loc); + return FAILURE; + } + /* F2008, C442. */ if (c->attr.codimension /* FIXME: c->as check due to PR 43412. */ && (!c->attr.allocatable || (c->as && c->as->type != AS_DEFERRED))) -- 2.47.2