From d68e117b15c0313115ee8649387927c876756fab Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Mon, 21 Jan 2008 19:33:10 +0100 Subject: [PATCH] re PR fortran/34901 (add kind information to mismatched-types error message) 2007-01-21 Tobias Burnus PR fortran/34901 * interface.c (compare_parameter): Improved error message for arguments of same type and mismatched kinds. From-SVN: r131700 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/interface.c | 14 +++----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 86b028231b9..6446e95638f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-01-21 Tobias Burnus + + PR fortran/34901 + * interface.c (compare_parameter): Improved error message + for arguments of same type and mismatched kinds. + 2008-01-20 Paul Thomas PR fortran/34861 diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 8b1f5db21dc..ef639845c78 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1470,18 +1470,10 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, if ((actual->expr_type != EXPR_NULL || actual->ts.type != BT_UNKNOWN) && !gfc_compare_types (&formal->ts, &actual->ts)) { - if (where && actual->ts.type == BT_DERIVED - && formal->ts.type == BT_DERIVED) - gfc_error ("Type mismatch in argument '%s' at %L; passed type(%s) to " - "type(%s)", formal->name, &actual->where, - actual->ts.derived->name, formal->ts.derived->name); - else if (where) + if (where) gfc_error ("Type mismatch in argument '%s' at %L; passed %s to %s", - formal->name, &actual->where, - actual->ts.type == BT_DERIVED ? "derived type" - : gfc_basic_typename (actual->ts.type), - formal->ts.type == BT_DERIVED ? "derived type" - : gfc_basic_typename (formal->ts.type)); + formal->name, &actual->where, gfc_typename (&actual->ts), + gfc_typename (&formal->ts)); return 0; } -- 2.30.2