compiler: generate type descriptor for pointer to alias defined in another package
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 11 Dec 2019 00:15:53 +0000 (00:15 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 11 Dec 2019 00:15:53 +0000 (00:15 +0000)
    When a type descriptor is needed (for e.g. interface conversion),
    if the type is a pointer to a named type defined in another
    package, we don't generate the definition of the type descriptor
    because it is generated in the package where the type is defined.
    However, if the named type is an alias to an unnamed type, its
    descriptor is not generated in the other package, and we need to
    generate it.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210787

From-SVN: r279207

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/types.cc

index 93e29b71b9afdc0b1f0c95342388e4e70899b6d3..b2933737c2ee854ec61ba9434a42ef68bcc216ff 100644 (file)
@@ -1,4 +1,4 @@
-6f2bf15e15bf7516c393966577d72b79cba7f980
+85641a0f26061f7c98db42a2adb3250c07ce504e
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index e02b832df149d08ff1427e307f2ff206d34df6dc..7afdba7b3f9114953b677c85328fc1b25acf3991 100644 (file)
@@ -1453,13 +1453,13 @@ Type::type_descriptor_defined_elsewhere(Named_type* nt,
   else
     {
       if (this->points_to() != NULL
-         && this->points_to()->named_type() != NULL
-         && this->points_to()->named_type()->named_object()->package() != NULL)
+         && this->points_to()->unalias()->named_type() != NULL
+         && this->points_to()->unalias()->named_type()->named_object()->package() != NULL)
        {
          // This is an unnamed pointer to a named type defined in a
          // different package.  The descriptor should be defined in
          // that package.
-         *package = this->points_to()->named_type()->named_object()->package();
+         *package = this->points_to()->unalias()->named_type()->named_object()->package();
          return true;
        }
     }