diff options
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r-- | gcc/fortran/interface.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index e914c6c..773749d 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1,6 +1,6 @@ /* Deal with interfaces. Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, - 2010 + 2010, 2011, 2012 Free Software Foundation, Inc. Contributed by Andy Vaught @@ -3256,6 +3256,14 @@ build_compcall_for_operator (gfc_expr* e, gfc_actual_arglist* actual, e->value.compcall.base_object = base; e->value.compcall.ignore_pass = 1; e->value.compcall.assign = 0; + if (e->ts.type == BT_UNKNOWN + && target->function) + { + if (target->is_generic) + e->ts = target->u.generic->specific->u.specific->n.sym->ts; + else + e->ts = target->u.specific->n.sym->ts; + } } |