https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98897

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
match.c's gfc_match_call has:

  /* If this is a variable of derived-type, it probably starts a type-bound
     procedure call.  */
  if ((sym->attr.flavor != FL_PROCEDURE
       || gfc_is_function_return_value (sym, gfc_current_ns))
      && (sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS))
    return match_typebound_call (st);

But here we have:
  sym->ts.type == BT_UNKNOWN, sym->attr.flavor == FL_VARIABLE

However, we do have: sym->assoc != NULL && sym->assoc->target != NULL and
'target' has:
  expr_type = EXPR_FUNCTION
  ts = {type = BT_UNKNOWN
  sym->assoc->target->symtree->n.sym
  $29 = {name = "output_data_t", module = "output_data_m",
  but the rest is also the default value.

Thus, the target needs to be resolved at some point – even when parsing '%' at
some point, the DT needs to be known.

Reply via email to