PR fortran/45338
* resolve.c (resolve_operator): Mark function for user-defined
operator as referenced.
2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/45338
* gfortran.dg/userdef_operator_2.f90: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168366
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/45338
+ * resolve.c (resolve_operator): Mark function for user-defined
+ operator as referenced.
+
2010-12-31 Janus Weil <janus@gcc.gnu.org>
PR fortran/46971
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;
+2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/45338
+ * gfortran.dg/userdef_operator_2.f90: New test case.
+
2010-12-31 Janus Weil <janus@gcc.gnu.org>
PR fortran/46971
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/method-conflict-3.m: New.
- * objc.dg/method-conflict-4.m: New.
- * obj-c++.dg/method-conflict-3.m: New.
+ * objc.dg/method-conflict-4.m: New.
+ * obj-c++.dg/method-conflict-3.m: New.
* obj-c++.dg/method-conflict-4.mm: New.
2010-12-30 Nicola Pero <nicola.pero@meta-innovation.com>
-
+
* objc.dg/class-extension-3.m: Updated.
* objc.dg/method-1.m: Updated.
* objc.dg/method-conflict-1.m: New.
- * objc.dg/method-conflict-2.m: New.
+ * objc.dg/method-conflict-2.m: New.
* obj-c++.dg/class-extension-3.mm: Updated.
* obj-c++.dg/method-8.mm: Updated.
* obj-c++.dg/method-conflict-1.mm: New.
--- /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