From 622af87fc843e25c9631a43aaa1b30cc647b2825 Mon Sep 17 00:00:00 2001 From: Daniel Franke Date: Fri, 29 Jun 2007 15:05:58 -0400 Subject: re PR fortran/31580 (Better error message for not-found operator) gcc/fortran: 2007-06-29 Daniel Franke PR fortran/31580 * resolve.c (resolve_operator): Added check whether a user defined operator is available. gcc/testsuite: 2007-06-29 Daniel Franke PR fortran/31580 * gfortran.dg/operator_3.f90: New test. From-SVN: r126117 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/resolve.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3e314c0..57724bf 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2007-06-29 Daniel Franke + + * resolve.c (resolve_operator): Added check whether a user + defined operator is available. + 2007-06-29 Daniel Franke * openmp.c (resolve_omp_clauses): Adjust error message to diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index bc6ba02..8cc0c42 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -2251,7 +2251,9 @@ resolve_operator (gfc_expr *e) goto bad_op; case INTRINSIC_USER: - if (op2 == NULL) + if (e->value.op.uop->operator == NULL) + sprintf (msg, _("Unknown operator '%s' at %%L"), e->value.op.uop->name); + else if (op2 == NULL) sprintf (msg, _("Operand of user operator '%s' at %%L is %s"), e->value.op.uop->name, gfc_typename (&op1->ts)); else -- cgit v1.1