From 2887665c943a4d67bda6f6410503fcfae6d6b7fa Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 27 Jan 2011 20:39:19 +0000 Subject: [PATCH] Fix self-referential struct via function and array. From-SVN: r169339 --- gcc/go/gofrontend/types.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index a70f5e9a3d0..aa331c2698c 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -3763,7 +3763,7 @@ Struct_type::fill_in_tree(Gogo* gogo, tree type) // Don't follow pointers yet, so that we don't get confused by a // pointer to an array of this struct type. tree field_type_tree; - if (p->type()->points_to() != NULL) + if (p->type()->points_to() != NULL || p->type()->function_type() != NULL) { field_type_tree = ptr_type_node; has_pointer = true; @@ -3793,7 +3793,8 @@ Struct_type::fill_in_tree(Gogo* gogo, tree type) p != this->fields_->end(); ++p, field = DECL_CHAIN(field)) { - if (p->type()->points_to() != NULL) + if (p->type()->points_to() != NULL + || p->type()->function_type() != NULL) TREE_TYPE(field) = p->type()->get_tree(gogo); } } -- 2.30.2