From 43d3a0241a477831f3e89c9fc385c486255b63c6 Mon Sep 17 00:00:00 2001 From: burnus Date: Wed, 16 Oct 2013 20:46:33 +0000 Subject: 2013-10-16 Tobias Burnus PR fortran/58652 * interface.c (compare_parameter): Accept passing CLASS(*) to CLASS(*). 2013-10-16 Tobias Burnus PR fortran/58652 * gfortran.dg/unlimited_polymorphic_12.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203720 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/interface.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gcc/fortran/interface.c') diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index b8786440fbe..b3ddf5f08b3 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1990,8 +1990,9 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, if (!gfc_expr_attr (actual).class_ok) return 0; - if (!gfc_compare_derived_types (CLASS_DATA (actual)->ts.u.derived, - CLASS_DATA (formal)->ts.u.derived)) + if ((!UNLIMITED_POLY (formal) || !UNLIMITED_POLY(actual)) + && !gfc_compare_derived_types (CLASS_DATA (actual)->ts.u.derived, + CLASS_DATA (formal)->ts.u.derived)) { if (where) gfc_error ("Actual argument to '%s' at %L must have the same " -- cgit v1.2.1