diff options
author | Keith Randall <khr@golang.org> | 2016-12-19 09:15:04 -0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2016-12-19 17:36:35 +0000 |
commit | 8d2169104467a14dea5705beb8ea351c68c5595d (patch) | |
tree | 69044c002e29b7f893700c53484c2107bc1010eb | |
parent | 0919fd70682ee07e58eed6f95ff1f55541d3fecb (diff) | |
download | go-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.go | 13 |
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 |