------- Comment #6 from burnus at gcc dot gnu dot org 2008-06-22 16:26 ------- Patch. The problem was that gfortran failed to find a conversion routine for logical(1) to logical(1), now it simply does nothing and reports success.
I'm not sure whether BT_VOID needs some special care or not. (Cf. interface.c's gfc_compare_types. Probably BT_VOID can never happen - or can it?) Index: intrinsic.c =================================================================== --- intrinsic.c (Revision 137011) +++ intrinsic.c @@ -3701,8 +3701,7 @@ gfc_convert_type_warn (gfc_expr *expr, g if (expr->ts.type == BT_UNKNOWN) goto bad; - if (expr->ts.type == BT_DERIVED && ts->type == BT_DERIVED - && gfc_compare_types (&expr->ts, ts)) + if (gfc_compare_types (&expr->ts, ts)) return SUCCESS; sym = find_conv (&expr->ts, ts); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36590