compiler: Fix assembler names of types defined in functions.
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 16 May 2012 00:26:32 +0000 (00:26 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 16 May 2012 00:26:32 +0000 (00:26 +0000)
From-SVN: r187574

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

index 5f74de5a8b3d70a0552e9f38415352bc9c264ecc..05417beeb550ec913f3798d92664daf103b25f49 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 35770c7657269f4bd003b3d092fdad1db8d56686..3f6e97a3f28034608390df4c7b2080a24f8995bd 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";