From d9d8d4e53f6c82a64ef38ddf899a7419d099b59e Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 24 Nov 2014 17:10:20 +0000 Subject: [PATCH] compiler: Do not dereference a named pointer type when looking up a method. Fixes Issue 9018. From-SVN: r218026 --- gcc/go/gofrontend/types.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index ba074613919..c85c72cb91b 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -10035,6 +10035,18 @@ Type::find_field_or_method(const Type* type, if (found_level == 0) return false; + else if (found_is_method + && type->named_type() != NULL + && type->points_to() != NULL) + { + // If this is a method inherited from a struct field in a named pointer + // type, it is invalid to automatically dereference the pointer to the + // struct to find this method. + if (level != NULL) + *level = found_level; + *is_method = true; + return false; + } else if (!found_ambig1.empty()) { go_assert(!found_ambig1.empty()); -- 2.30.2