| // Copyright 2013 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| // Issue 4909: compiler incorrectly accepts unsafe.Offsetof(t.x) |
| // where x is a field of an embedded pointer field. |
| const N1 = unsafe.Offsetof(t.X) // ERROR "indirection|field X is embedded via a pointer in T" |
| const N2 = unsafe.Offsetof(p.X) // ERROR "indirection|field X is embedded via a pointer in T" |
| const N3 = unsafe.Offsetof(t.B.X) // valid |
| const N4 = unsafe.Offsetof(p.B.X) // valid |
| const N5 = unsafe.Offsetof(t.Method) // ERROR "method value" |
| const N6 = unsafe.Offsetof(p.Method) // ERROR "method value" |