compiler: Fix assembler names of types defined in functions.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 May 2012 00:26:32 +0000 (00:26 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 May 2012 00:26:32 +0000 (00:26 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187574 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/go/gofrontend/gogo-tree.cc
gcc/go/gofrontend/types.cc

index 5f74de5..05417be 100644 (file)
@@ -1003,7 +1003,7 @@ Named_object::get_id(Gogo* gogo)
     {
       const Named_object* in_function = this->type_value()->in_function();
       if (in_function != NULL)
-       decl_name += '$' + in_function->name();
+       decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
     }
   return get_identifier_from_string(decl_name);
 }
index 35770c7..3f6e97a 100644 (file)
@@ -1748,7 +1748,7 @@ Type::specific_type_functions(Gogo* gogo, Named_type* name,
       base_name = name->name();
       const Named_object* in_function = name->in_function();
       if (in_function != NULL)
-       base_name += '$' + in_function->name();
+       base_name += '$' + Gogo::unpack_hidden_name(in_function->name());
     }
   std::string hash_name = base_name + "$hash";
   std::string equal_name = base_name + "$equal";