// Copyright 2014 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. package main import ( "fmt" "os" "reflect" ) // Test that the struct field in anonunion.go was promoted. var v1 T var v2 = v1.L // Test that P, Q, and R all point to byte. var v3 = Issue8478{P: (*byte)(nil), Q: (**byte)(nil), R: (***byte)(nil)} // Test that N, A and B are fully defined var v4 = N{} var v5 = A{} var v6 = B{} // Test that S is fully defined var v7 = S{} // Test that #define'd type is fully defined var _ = issue38649{X: 0} func main() { pass := true // The Go translation of bitfields should not have any of the // bitfield types. The order in which bitfields are laid out // in memory is implementation defined, so we can't easily // know how a bitfield should correspond to a Go type, even if // it appears to be aligned correctly. bitfieldType := reflect.TypeOf(bitfields{}) check := func(name string) { _, ok := bitfieldType.FieldByName(name) if ok { fmt.Fprintf(os.Stderr, "found unexpected bitfields field %s\n", name) pass = false } } check("Short1") check("Short2") check("Short3") if !pass { os.Exit(1) } }