From: Ian Lance Taylor Date: Thu, 27 Jan 2011 20:39:19 +0000 (+0000) Subject: Fix self-referential struct via function and array. X-Git-Tag: upstream/12.2.0~86764 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2887665c943a4d67bda6f6410503fcfae6d6b7fa;p=platform%2Fupstream%2Fgcc.git Fix self-referential struct via function and array. From-SVN: r169339 --- diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index a70f5e9..aa331c2 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); } }