compiler: emit type specific functions for aliases
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 14 Sep 2017 03:51:21 +0000 (03:51 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 14 Sep 2017 03:51:21 +0000 (03:51 +0000)
    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

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/gogo.cc

index a905f583859972c02359377a49f3b259441176a4..74a0dba28f7f36d673d83ed369215a22df177f6a 100644 (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.
index 5dbe29da261a64ccc586172bd853daeacc9162ed..adc8e8a23632daa123227a02cb0de74b3b5f4f23 100644 (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);