+2011-02-01 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from mainline
+ PR fortran/45338
+ * resolve.c (resolve_operator): Mark function for user-defined
+ operator as referenced.
+
2010-12-16 Release Manager
* GCC 4.5.2 released.
sprintf (msg, _("Operand of user operator '%s' at %%L is %s"),
e->value.op.uop->name, gfc_typename (&op1->ts));
else
- sprintf (msg, _("Operands of user operator '%s' at %%L are %s/%s"),
- e->value.op.uop->name, gfc_typename (&op1->ts),
- gfc_typename (&op2->ts));
+ {
+ sprintf (msg, _("Operands of user operator '%s' at %%L are %s/%s"),
+ e->value.op.uop->name, gfc_typename (&op1->ts),
+ gfc_typename (&op2->ts));
+ e->value.op.uop->op->sym->attr.referenced = 1;
+ }
goto bad_op;
+2011-02-01 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from mainline
+ PR fortran/45338
+ * gfortran.dg/userdef_operator_2.f90: New test case.
+
2010-12-27 Yao Qi <yao@codesourcery.com>
Backport from mainline:
--- /dev/null
+! { dg-do compile }
+! PR 45338 - no ICE when cmp is not used explicitly.
+! Test case by Simon Smart
+module test_mod
+ implicit none
+contains
+ subroutine test_fn (cmp)
+ interface operator(.myop.)
+ pure function cmp (a, b) result(ret)
+ integer, intent(in) :: a, b
+ logical ret
+ end function cmp
+ end interface
+ integer :: a, b
+ print*, a .myop. b
+ end subroutine test_fn
+end module test_mod