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>
`,
[]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