mirror of https://github.com/golang/go.git
cmd/compile: test for correct zeroing
Make sure we generate the right code for zeroing a structure. Check in after Matthew's CL (34564). Update #18370 Change-Id: I987087f979d99227a880b34c44d9d4de6c25ba0c Reviewed-on: https://go-review.googlesource.com/34565 Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Keith Randall <khr@golang.org>
This commit is contained in:
parent
0919fd7068
commit
8d21691044
|
|
@ -205,6 +205,19 @@ func f(b []byte, i int) uint32 {
|
|||
`,
|
||||
[]string{"\tMOVL\t\\(.*\\)\\(.*\\*1\\),"},
|
||||
},
|
||||
|
||||
// Structure zeroing. See issue #18370.
|
||||
{"amd64", "linux", `
|
||||
type T struct {
|
||||
a, b, c int
|
||||
}
|
||||
func f(t *T) {
|
||||
*t = T{}
|
||||
}
|
||||
`,
|
||||
[]string{"\tMOVQ\t\\$0, \\(.*\\)", "\tMOVQ\t\\$0, 8\\(.*\\)", "\tMOVQ\t\\$0, 16\\(.*\\)"},
|
||||
},
|
||||
// TODO: add a test for *t = T{3,4,5} when we fix that.
|
||||
}
|
||||
|
||||
// mergeEnvLists merges the two environment lists such that
|
||||
|
|
|
|||
Loading…
Reference in New Issue