From 622af87fc843e25c9631a43aaa1b30cc647b2825 Mon Sep 17 00:00:00 2001 From: Daniel Franke Date: Fri, 29 Jun 2007 15:05:58 -0400 Subject: [PATCH] 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 +++- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/operator_3.f90 | 9 +++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/operator_3.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3e314c0c228..57724bff2fb 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 bc6ba02d44a..8cc0c421193 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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7a7f212515c..447bcdeca8f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-06-29 Daniel Franke + + * gfortran.dg/operator_3.f90: New test. + 2007-06-29 Daniel Franke * gfortran.dg/gomp/reduction1.f90: Adjust error message. diff --git a/gcc/testsuite/gfortran.dg/operator_3.f90 b/gcc/testsuite/gfortran.dg/operator_3.f90 new file mode 100644 index 00000000000..66f051da667 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/operator_3.f90 @@ -0,0 +1,9 @@ +! { dg-compile } +! PR fortran/31580 +! +! Testcase contributed by Tobias Burnus +! +PROGRAM test + real :: a,b + if(a .nonex. b) stop ! { dg-error "Unknown operator" } +end program -- 2.30.2