aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/trans.c')
-rw-r--r--gcc/fortran/trans.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c
index 8f0adde..cb6a57f 100644
--- a/gcc/fortran/trans.c
+++ b/gcc/fortran/trans.c
@@ -2302,7 +2302,8 @@ gfc_deferred_strlen (gfc_component *c, tree *decl)
{
char name[GFC_MAX_SYMBOL_LEN+9];
gfc_component *strlen;
- if (!(c->ts.type == BT_CHARACTER && c->ts.deferred))
+ if (!(c->ts.type == BT_CHARACTER
+ && (c->ts.deferred || c->attr.pdt_string)))
return false;
sprintf (name, "_%s_length", c->name);
for (strlen = c; strlen; strlen = strlen->next)