compiler: don't add pointer twice to value method of direct interface type
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 8 May 2019 04:29:46 +0000 (04:29 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 8 May 2019 04:29:46 +0000 (04:29 +0000)
commitd9b120ce89f7198d1a82727f54e0563321a2cba8
treebd930ed9851577570d81bfd24c362fca225da645
parent8c4a4099743ad6040f88252ac99962503ddede3d
compiler: don't add pointer twice to value method of direct interface type

    For a direct interface type T with a value method M, its pointer
    type (*T)'s method table includes a stub method of M which takes
    a (*T) as the receiver instead of a T. However, for the "typ"
    field of the method table entry, we added another layer of
    indirection, which makes it appear to take a **T, which is wrong.
    This causes problems when using reflect.Type.Method to get the
    method. This CL fixes the second, incorrect, indirection.

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

From-SVN: r270999
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/types.cc