aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2011-12-15 16:18:33 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2011-12-15 16:18:33 +0100
commit0c5c7b003e8dec16f3cb887aa08c7f5241ee6fcc (patch)
tree4c0b4bee0841fb6d8c38be6a94642ea26b78a058 /gcc/fortran/resolve.c
parent492792ed9b7a3b6ce5f595b2dc848eb2dae8116f (diff)
downloadgcc-0c5c7b003e8dec16f3cb887aa08c7f5241ee6fcc.zip
gcc-0c5c7b003e8dec16f3cb887aa08c7f5241ee6fcc.tar.gz
gcc-0c5c7b003e8dec16f3cb887aa08c7f5241ee6fcc.tar.bz2
re PR fortran/51550 (ICE in gfc_get_derived_type, at fortran/trans-types.c:2401)
2011-12-15 Tobias Burnus <burnus@net-b.de> 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
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c8
1 files changed, 8 insertions, 0 deletions
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