aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2012-11-16 18:02:02 +0100
committerJanus Weil <janus@gcc.gnu.org>2012-11-16 18:02:02 +0100
commitb185792f5216497c74664bdf9ba2d465628d6f4c (patch)
treeece13feefe2356866c55f461775d7e5f155825f0 /gcc/fortran
parente731262b38e57a608b2c12ffc76fb682c1672d31 (diff)
downloadgcc-b185792f5216497c74664bdf9ba2d465628d6f4c.zip
gcc-b185792f5216497c74664bdf9ba2d465628d6f4c.tar.gz
gcc-b185792f5216497c74664bdf9ba2d465628d6f4c.tar.bz2
re PR fortran/55297 ([OOP] type-bound operator clashes with abstract interface)
2012-11-16 Janus Weil <janus@gcc.gnu.org> PR fortran/55297 * resolve.c (resolve_typebound_intrinsic_op): Only add typebound operators to the operator list in the namespace of the derived type. 2012-11-16 Janus Weil <janus@gcc.gnu.org> PR fortran/55297 * gfortran.dg/typebound_operator_18.f90: New. From-SVN: r193568
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 74ea42a..439eae5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-11-16 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/55297
+ * resolve.c (resolve_typebound_intrinsic_op): Only add typebound
+ operators to the operator list in the namespace of the derived type.
+
2012-11-12 Jan Hubicka <jh@suse.cz>
* f95-lang.c (ATTR_NOTHROW_LEAF_MALLOC_LIST): New macro.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index e39a137..53d695cd 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -11540,7 +11540,7 @@ resolve_typebound_intrinsic_op (gfc_symbol* derived, gfc_intrinsic_op op,
/* Add target to non-typebound operator list. */
if (!target->specific->deferred && !derived->attr.use_assoc
- && p->access != ACCESS_PRIVATE)
+ && p->access != ACCESS_PRIVATE && derived->ns == gfc_current_ns)
{
gfc_interface *head, *intr;
if (gfc_check_new_interface (derived->ns->op[op], target_proc,