compiler: guard against implicit double pointer indirection
authorIan Lance Taylor <ian@gcc.gnu.org>
Sat, 9 Sep 2017 06:01:35 +0000 (06:01 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Sat, 9 Sep 2017 06:01:35 +0000 (06:01 +0000)
commitd46699acb04b053a391abe3841543dfe0cfb5751
treeba2149f66908b36dd5a9815a4225e7823f2120bf
parent0f99f8e6d63038b68e5e7af950ff9e329bdc40ad
compiler: guard against implicit double pointer indirection

    The code that lowers field references can sometimes introduce a double
    pointer indirection in cases where it is not/safe appropriate. For
    example, in

            var p **struct { f int }
            p.f = 0

    the assignment LHS was being incorrectly lowered to (*(*p)).f.
    Detect this situation and issue an error.

    Fixes golang/go#21770

    Reviewed-on: https://go-review.googlesource.com/62330

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