compiler: emit type specific functions for aliases

If we have 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.
    
    Test case is https://golang.org/cl/62531.
    
    Reviewed-on: https://go-review.googlesource.com/62412

From-SVN: r252747
This commit is contained in:
Ian Lance Taylor 2017-09-14 03:51:21 +00:00
parent ce64a8b4a2
commit 03ff36aa01
2 changed files with 3 additions and 1 deletions

View File

@ -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.

View File

@ -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);