summaryrefslogtreecommitdiff
path: root/gcc/fortran/interface.c
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2013-10-16 20:46:33 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2013-10-16 20:46:33 +0000
commit43d3a0241a477831f3e89c9fc385c486255b63c6 (patch)
tree33f03339be8340a034cb8d2a9c2eac39e8775fb3 /gcc/fortran/interface.c
parent1abe98f5e1399913d42eeea5fba17ca162deb48c (diff)
downloadgcc-43d3a0241a477831f3e89c9fc385c486255b63c6.tar.gz
2013-10-16 Tobias Burnus <burnus@net-b.de>
PR fortran/58652 * interface.c (compare_parameter): Accept passing CLASS(*) to CLASS(*). 2013-10-16 Tobias Burnus <burnus@net-b.de> 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
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r--gcc/fortran/interface.c5
1 files changed, 3 insertions, 2 deletions
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 "