aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2016-12-19 09:15:04 -0800
committerKeith Randall <khr@golang.org>2016-12-19 17:36:35 +0000
commit8d2169104467a14dea5705beb8ea351c68c5595d (patch)
tree69044c002e29b7f893700c53484c2107bc1010eb
parent0919fd70682ee07e58eed6f95ff1f55541d3fecb (diff)
downloadgo-8d2169104467a14dea5705beb8ea351c68c5595d.tar.gz
go-8d2169104467a14dea5705beb8ea351c68c5595d.zip
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>
-rw-r--r--src/cmd/compile/internal/gc/asm_test.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/gc/asm_test.go b/src/cmd/compile/internal/gc/asm_test.go
index 2e5d7e7488..945b74ca8c 100644
--- a/src/cmd/compile/internal/gc/asm_test.go
+++ b/src/cmd/compile/internal/gc/asm_test.go
@@ -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