diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-10-02 23:50:23 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-10-02 23:50:23 +0000 |
commit | 64a57390680b011223f0f489cfa7b5c42b081f59 (patch) | |
tree | a92ae57e783518fc65dba6ca3e6248f49c8536c8 /gcc | |
parent | e395eacb4e15d30cf9862b6e73dd05c2dab58364 (diff) | |
download | gcc-64a57390680b011223f0f489cfa7b5c42b081f59.zip gcc-64a57390680b011223f0f489cfa7b5c42b081f59.tar.gz gcc-64a57390680b011223f0f489cfa7b5c42b081f59.tar.bz2 |
compiler: Fix a couple of type reflection strings.
From-SVN: r192014
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/go/gofrontend/types.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 3ae54a4..1736a32 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -4919,14 +4919,15 @@ Struct_type::write_equal_function(Gogo* gogo, Named_type* name) void Struct_type::do_reflection(Gogo* gogo, std::string* ret) const { - ret->append("struct { "); + ret->append("struct {"); for (Struct_field_list::const_iterator p = this->fields_->begin(); p != this->fields_->end(); ++p) { if (p != this->fields_->begin()) - ret->append("; "); + ret->push_back(';'); + ret->push_back(' '); if (p->is_anonymous()) ret->push_back('?'); else @@ -4959,7 +4960,10 @@ Struct_type::do_reflection(Gogo* gogo, std::string* ret) const } } - ret->append(" }"); + if (!this->fields_->empty()) + ret->push_back(' '); + + ret->push_back('}'); } // Mangled name. @@ -8390,6 +8394,7 @@ Named_type::do_reflection(Gogo* gogo, std::string* ret) const } if (this->in_function_ != NULL) { + ret->push_back('\t'); ret->append(Gogo::unpack_hidden_name(this->in_function_->name())); ret->push_back('$'); if (this->in_function_index_ > 0) @@ -8399,6 +8404,7 @@ Named_type::do_reflection(Gogo* gogo, std::string* ret) const ret->append(buf); ret->push_back('$'); } + ret->push_back('\t'); } ret->append(Gogo::unpack_hidden_name(this->named_object_->name())); } |