From: Ian Lance Taylor Date: Tue, 21 Dec 2010 22:33:04 +0000 (+0000) Subject: Don't finalize methods for a type more than once. X-Git-Tag: releases/gcc-4.6.0~1697 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31e1ba2e2a6419ce69489c63b57aa33bee12e280;p=thirdparty%2Fgcc.git Don't finalize methods for a type more than once. From-SVN: r168134 --- diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 97bde7bd6a5c..11a561dac2d5 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -3698,6 +3698,8 @@ Struct_type::is_unexported_local_field(Gogo* gogo, void Struct_type::finalize_methods(Gogo* gogo) { + if (this->all_methods_ != NULL) + return; Type::finalize_methods(gogo, this, this->location_, &this->all_methods_); } @@ -6615,6 +6617,9 @@ Named_type::is_unexported_local_method(Gogo* gogo, void Named_type::finalize_methods(Gogo* gogo) { + if (this->all_methods_ != NULL) + return; + if (this->local_methods_ != NULL && (this->points_to() != NULL || this->interface_type() != NULL)) {