compiler: fix crash on struct that embeds pointer type
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 27 Sep 2017 17:46:33 +0000 (17:46 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 27 Sep 2017 17:46:33 +0000 (17:46 +0000)
commit762cc1fb3595afdfc2c33dfd32b98a400d20ea5d
treec9d2a60d8775d143e4dd645a0f4d43ac10c46e7e
parentab90c27b6739a096d9afe9472b14057fbc24e392
compiler: fix crash on struct that embeds pointer type

    The type verification code that enforces rules about the types of
    embedded struct fields was not properly handling the case where the
    pointed-to type is a pointer type, e.g.

      type s *struct{ C int }
      type t struct{ *s }

    which is illegal according to the spec. Tweak the verifier to catch
    this case, and add a guard in the lowering pass to make sure that we
    don't crash on invalid accesses to field "C" in type "t" above.

    Fixes golang/go#22050

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

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