aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2012-10-02 23:50:23 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-10-02 23:50:23 +0000
commit64a57390680b011223f0f489cfa7b5c42b081f59 (patch)
treea92ae57e783518fc65dba6ca3e6248f49c8536c8 /gcc
parente395eacb4e15d30cf9862b6e73dd05c2dab58364 (diff)
downloadgcc-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.cc12
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()));
}