Commit a7385f1c by Ian Lance Taylor

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
parent 0c86a39d
d6338c94e5574b63469c740159d064e89c6718bf 38850073f25f9de4f3daa33d799def3a33c942ab
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -992,8 +992,10 @@ Type::get_backend(Gogo* gogo) ...@@ -992,8 +992,10 @@ Type::get_backend(Gogo* gogo)
return this->btype_; return this->btype_;
if (this->named_type() != NULL && this->named_type()->is_alias()) { if (this->named_type() != NULL && this->named_type()->is_alias()) {
this->btype_ = this->unalias()->get_backend(gogo); Btype* bt = this->unalias()->get_backend(gogo);
return this->btype_; if (gogo != NULL && gogo->named_types_are_converted())
this->btype_ = bt;
return bt;
} }
if (this->forward_declaration_type() != NULL if (this->forward_declaration_type() != NULL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment