compiler: Fix a couple of type reflection strings.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 2 Oct 2012 23:50:23 +0000 (23:50 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 2 Oct 2012 23:50:23 +0000 (23:50 +0000)
From-SVN: r192014

gcc/go/gofrontend/types.cc

index 3ae54a43806a221d2740e4f4344c483ad6acd189..1736a32654d657acdf821e5c9e5c34993eff2a25 100644 (file)
@@ -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()));
 }