diff options
author | Daniel Franke <franke.daniel@gmail.com> | 2007-06-29 15:05:58 -0400 |
---|---|---|
committer | Daniel Franke <dfranke@gcc.gnu.org> | 2007-06-29 15:05:58 -0400 |
commit | 622af87fc843e25c9631a43aaa1b30cc647b2825 (patch) | |
tree | 2259a9c1e758153c6efff3d45d5bfcfce3a59d4a /gcc/fortran | |
parent | bc3d41534ae0176f35ddad72fd928f60aae3b939 (diff) | |
download | gcc-622af87fc843e25c9631a43aaa1b30cc647b2825.zip gcc-622af87fc843e25c9631a43aaa1b30cc647b2825.tar.gz gcc-622af87fc843e25c9631a43aaa1b30cc647b2825.tar.bz2 |
re PR fortran/31580 (Better error message for not-found operator)
gcc/fortran:
2007-06-29 Daniel Franke <franke.daniel@gmail.com>
PR fortran/31580
* resolve.c (resolve_operator): Added check whether a user
defined operator is available.
gcc/testsuite:
2007-06-29 Daniel Franke <franke.daniel@gmail.com>
PR fortran/31580
* gfortran.dg/operator_3.f90: New test.
From-SVN: r126117
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 4 |
2 files changed, 8 insertions, 1 deletions
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 <franke.daniel@gmail.com> + + * resolve.c (resolve_operator): Added check whether a user + defined operator is available. + 2007-06-29 Daniel Franke <franke.daniel@gmail.com> * 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 |