aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorDaniel Franke <franke.daniel@gmail.com>2007-06-29 15:05:58 -0400
committerDaniel Franke <dfranke@gcc.gnu.org>2007-06-29 15:05:58 -0400
commit622af87fc843e25c9631a43aaa1b30cc647b2825 (patch)
tree2259a9c1e758153c6efff3d45d5bfcfce3a59d4a /gcc/fortran
parentbc3d41534ae0176f35ddad72fd928f60aae3b939 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/fortran/resolve.c4
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