------- Comment #3 from jvdelisle at gcc dot gnu dot org  2007-11-23 21:14 
-------
This appears to fix the problem:

  }

  void
! gfc_resolve_nearest (gfc_expr *f, gfc_expr *a, gfc_expr *p)
  {
+   if (p != NULL && p->ts.kind < a->ts.kind)
+     {
+       if (a->ts.kind == gfc_kind_max (a,p))
+       gfc_convert_type (p, &a->ts, 2);
+       else
+       gfc_convert_type (a, &p->ts, 2);
+     }
    f->ts = a->ts;
    f->value.function.name
      = gfc_get_string ("__nearest_%c%d", gfc_type_letter (a->ts.type),

We might want to think this through a bit for other combinations of kinds in
the arguments given.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34209

Reply via email to