When the Go frontend has an alias for a struct or array that requires
a type-specific function, don't emit the function with the alias name.
Emit it with the struct/array as usual.

The test case is for this is https://golang.org/cl/62531.

Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
to mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE     (revision 252746)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-b0a46c2cdb915ddc4a4e401af9ef6eb2bcd4d4ea
+89e46ae0cde7bebd8e97434355c5b7e57d902613
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: gcc/go/gofrontend/gogo.cc
===================================================================
--- gcc/go/gofrontend/gogo.cc   (revision 251948)
+++ gcc/go/gofrontend/gogo.cc   (working copy)
@@ -2498,6 +2498,8 @@ Specific_type_functions::type(Type* t)
     case Type::TYPE_NAMED:
       {
        Named_type* nt = t->named_type();
+       if (nt->is_alias())
+         return TRAVERSE_CONTINUE;
        if (t->needs_specific_type_functions(this->gogo_))
          t->type_functions(this->gogo_, nt, NULL, NULL, &hash_fn, &equal_fn);
 

Reply via email to