// Check that 64-bit fields on which we apply atomic operations // are aligned to 8 bytes. This can be a problem on 32-bit systems. func TestAtomicAlignment(t *testing.T) { … } type Visitor … func (v *Visitor) Visit(n ast.Node) ast.Visitor { … } // checkAddr checks to make sure n is a properly aligned address for a 64-bit atomic operation. func (v *Visitor) checkAddr(n ast.Node) { … } func (v *Visitor) print(n ast.Node) string { … } // buildableFiles returns the list of files in the given directory // that are actually used for the build, given GOOS/GOARCH restrictions. func buildableFiles(t *testing.T, dir string) []string { … }