From 1dd88f8beedd63cd957edcdf2a28f7b76dfc583a Mon Sep 17 00:00:00 2001 From: "Steven G. Kargl" Date: Sat, 9 Jun 2018 15:58:24 +0000 Subject: re PR fortran/38351 (Poor error message for rank mismatch in operator args) 2018-06-09 Steven G. Kargl PR fortran/38351 * resolve.c (resolve_operator): Provide better error message for derived type entity used in an binary intrinsic numeric operator. 2018-06-09 Steven G. Kargl PR fortran/38351 * gfortran.dg/pr38351.f90: New test. * gfortran.dg/typebound_operator_4.f03: Adjust for new error message. From-SVN: r261363 --- gcc/fortran/resolve.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gcc/fortran/resolve.c') diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 3d53ce5..b1d4e03 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -3878,7 +3878,13 @@ resolve_operator (gfc_expr *e) break; } - sprintf (msg, + if (op1->ts.type == BT_DERIVED || op2->ts.type == BT_DERIVED) + sprintf (msg, + _("Unexpected derived-type entities in binary intrinsic " + "numeric operator %%<%s%%> at %%L"), + gfc_op2string (e->value.op.op)); + else + sprintf (msg, _("Operands of binary numeric operator %%<%s%%> at %%L are %s/%s"), gfc_op2string (e->value.op.op), gfc_typename (&op1->ts), gfc_typename (&op2->ts)); -- cgit v1.1