From: Ian Lance Taylor Date: Thu, 1 Feb 2018 15:54:04 +0000 (+0000) Subject: compiler: omit field name for embedded fields in reflection string X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4d0bf3e1e184f78d4a2716245aa963aef0e918cf;p=gcc.git compiler: omit field name for embedded fields in reflection string This matches the gc compiler. The test case was sent for the master repo as https://golang.org/cl/91138. Fixes golang/go#23620 Reviewed-on: https://go-review.googlesource.com/91139 From-SVN: r257300 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 935c0880db8..6e580389d91 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -b833695618d1a5d9d531f5ba0f9c07c7e35e0073 +023c3d4358d101c71ac1436065690eaec2ce138e The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index a0c81c079c0..ea9d81d4e24 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -6417,11 +6417,11 @@ Struct_type::do_reflection(Gogo* gogo, std::string* ret) const if (p != this->fields_->begin()) ret->push_back(';'); ret->push_back(' '); - if (p->is_anonymous()) - ret->push_back('?'); - else - ret->append(Gogo::unpack_hidden_name(p->field_name())); - ret->push_back(' '); + if (!p->is_anonymous()) + { + ret->append(Gogo::unpack_hidden_name(p->field_name())); + ret->push_back(' '); + } if (p->is_anonymous() && p->type()->named_type() != NULL && p->type()->named_type()->is_alias()) diff --git a/libgo/go/reflect/all_test.go b/libgo/go/reflect/all_test.go index 6e748599de5..86e738555f8 100644 --- a/libgo/go/reflect/all_test.go +++ b/libgo/go/reflect/all_test.go @@ -170,6 +170,14 @@ var typeTests = []pair{ }{}, "interface { reflect_test.a(func(func(int) int) func(func(int)) int); reflect_test.b() }", }, + {struct { + x struct { + int32 + int64 + } + }{}, + "struct { int32; int64 }", + }, } var valueTests = []pair{