From a7385f1c0eb0986f7d6bc68ea3f26e5a96f50c80 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 17 Jul 2018 18:27:22 +0000 Subject: [PATCH] compiler: don't set btype_ too early for alias type CL 123362 introduced a bug in creating alias type's backend representation. A type's btype_ should not be set before named types are converted if it is a placeholder. For alias type, it is set too early. This may result in unresolved placeholders. This CL fixes it. Reviewed-on: https://go-review.googlesource.com/123975 From-SVN: r262833 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/types.cc | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index f9d37e728e7..726bf3ab906 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -d6338c94e5574b63469c740159d064e89c6718bf +38850073f25f9de4f3daa33d799def3a33c942ab The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index fa8c0ad1901..2fb67064471 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -992,8 +992,10 @@ Type::get_backend(Gogo* gogo) return this->btype_; if (this->named_type() != NULL && this->named_type()->is_alias()) { - this->btype_ = this->unalias()->get_backend(gogo); - return this->btype_; + Btype* bt = this->unalias()->get_backend(gogo); + if (gogo != NULL && gogo->named_types_are_converted()) + this->btype_ = bt; + return bt; } if (this->forward_declaration_type() != NULL -- 2.30.2