From 0c5c7b003e8dec16f3cb887aa08c7f5241ee6fcc Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Thu, 15 Dec 2011 16:18:33 +0100 Subject: 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: r182372 --- gcc/fortran/ChangeLog | 9 +++++++++ gcc/fortran/resolve.c | 8 ++++++++ 2 files changed, 17 insertions(+) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1f00326..5175e41 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,14 @@ 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-15 Tobias Burnus + * primary.c (gfc_match_varspec): Match array spec for polymorphic coarrays. (gfc_match_rvalue): If a symbol of unknown flavor has a diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index b4a9d1c..b12efe0 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -11432,6 +11432,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 ((!sym->attr.is_class || c != sym->components) && c->attr.codimension -- cgit v1.1