compiler, reflect: fix struct field names for embedded aliases

This adds much of https://golang.org/cl/35731 and
https://golang.org/cl/35732 to the gofrontend code.

This is a step toward updating libgo to the 1.9 release.  The
gofrontend already supports type aliases, and this is required for
correct support of type aliases when used as embedded fields.

The change to expressions.cc is to handle the << 1, used for the
newly renamed offsetAnon field, in the constant context used for type
descriptor initialization.

Change-Id: Id452b77730f3d13c3fede2790434d56db49c6de9
Reviewed-on: https://go-review.googlesource.com/62710
Reviewed-by: Than McIntosh <thanm@google.com>
5 files changed