compiler: pass correct 'function' flag to circular_pointer_type

The code in Named_type::do_get_backend was not passing the correct
    flag value for circular function types to Backend::circular_pointer_type
    (it was always setting this flag to false). Pass a true value if the
    type being converted is a function type.
    
    Reviewed-on: https://go-review.googlesource.com/49330

From-SVN: r250325
This commit is contained in:
Ian Lance Taylor 2017-07-18 22:31:00 +00:00
parent eb80664a39
commit ab86687fee
2 changed files with 3 additions and 3 deletions

View file

@ -1,4 +1,4 @@
21775ae119830810d9e415a02e85349f4190c68c
0036bd04d077f8bbe5aa9a62fb8830c53068209e
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View file

@ -10994,13 +10994,13 @@ Named_type::do_get_backend(Gogo* gogo)
if (this->seen_in_get_backend_)
{
this->is_circular_ = true;
return gogo->backend()->circular_pointer_type(bt, false);
return gogo->backend()->circular_pointer_type(bt, true);
}
this->seen_in_get_backend_ = true;
bt1 = Type::get_named_base_btype(gogo, base);
this->seen_in_get_backend_ = false;
if (this->is_circular_)
bt1 = gogo->backend()->circular_pointer_type(bt, false);
bt1 = gogo->backend()->circular_pointer_type(bt, true);
if (!gogo->backend()->set_placeholder_pointer_type(bt, bt1))
bt = gogo->backend()->error_type();
return bt;