View | Details | Raw Unified | Return to bug 52158
Collapse All | Expand All

(-)gcc-4.8-bis/gcc/fortran/resolve.c (-1 / +1 lines)
Lines 11638-11644 Link Here
11638
  for ( ; c != NULL; c = c->next)
11638
  for ( ; c != NULL; c = c->next)
11639
    {
11639
    {
11640
      /* See PRs 51550, 47545, 48654, 49050, 51075 - and 45170.  */
11640
      /* See PRs 51550, 47545, 48654, 49050, 51075 - and 45170.  */
11641
      if (c->ts.type == BT_CHARACTER && c->ts.deferred)
11641
      if (c->ts.type == BT_CHARACTER && c->ts.deferred && !c->attr.function)
11642
	{
11642
	{
11643
	  gfc_error ("Deferred-length character component '%s' at %L is not "
11643
	  gfc_error ("Deferred-length character component '%s' at %L is not "
11644
		     "yet supported", c->name, &c->loc);
11644
		     "yet supported", c->name, &c->loc);
(-)gcc-4.8-bis/gcc/fortran/trans-expr.c (-1 / +1 lines)
Lines 4153-4159 Link Here
4153
	     we take the character length of the first argument for the result.
4153
	     we take the character length of the first argument for the result.
4154
	     For dummies, we have to look through the formal argument list for
4154
	     For dummies, we have to look through the formal argument list for
4155
	     this function and use the character length found there.*/
4155
	     this function and use the character length found there.*/
4156
	  if (ts.deferred && (sym->attr.allocatable || sym->attr.pointer))
4156
	  if (ts.deferred && (!comp && (sym->attr.allocatable || sym->attr.pointer)) || (comp && (comp->attr.allocatable || comp->attr.pointer)) )
4157
	    cl.backend_decl = gfc_create_var (gfc_charlen_type_node, "slen");
4157
	    cl.backend_decl = gfc_create_var (gfc_charlen_type_node, "slen");
4158
	  else if (!sym->attr.dummy)
4158
	  else if (!sym->attr.dummy)
4159
	    cl.backend_decl = VEC_index (tree, stringargs, 0);
4159
	    cl.backend_decl = VEC_index (tree, stringargs, 0);

Return to bug 52158