------- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-04-23 
22:07 -------
In interface.c, we use compare_parameter to match an actual argument to
one of the formal arguments. The type is used to determine which member
of the interface (tt_r or tt_i) we will call.

Unfortunately, compare_parameter has a special case for EXPR_NULL:

  if (actual->expr_type != EXPR_NULL
      && !gfc_compare_types (&formal->ts, &actual->ts))
    return 0;

That is: actual and formal arguments match if they have the same type,
unless the are NULL, in which case they always match (and the member of
the interface chosen for execution is the first one in the list, which in
the case of this PR is TT_R).

I'm not sure whether this restriction should be completely lifted, since
there must have been a reason why it was here in the first place...

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org
   Last reconfirmed|2005-04-23 15:20:54         |2005-04-23 22:07:59
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21177

Reply via email to