------- 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