compiler: pass correct 'function' flag to circular_pointer_type
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 18 Jul 2017 22:31:00 +0000 (22:31 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 18 Jul 2017 22:31:00 +0000 (22:31 +0000)
    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

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

index 06a8731d06fc4b359fd385148c4f155efb987b77..cc713791691d265c27bcf5b4eaed870ec65c48e1 100644 (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.
index b2756fde0482e0ee018dae8b1129851d8ffd11e2..ca5f5121d3699035ee61a24b3564691812c41e15 100644 (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;