diff options
author | Alberto Donizetti <alb.donizetti@gmail.com> | 2018-03-16 12:05:18 +0100 |
---|---|---|
committer | Alberto Donizetti <alb.donizetti@gmail.com> | 2018-03-18 16:53:53 +0000 |
commit | b61b1d2c57131b4fad9269c07ef8429add208017 (patch) | |
tree | f07e3fc107105d4fd5eed4a4e3eb3bc3a85d04ee /test/codegen/structs.go | |
parent | cc155ebf243a900109613eae4c89a381aa545160 (diff) | |
download | go-git-b61b1d2c57131b4fad9269c07ef8429add208017.tar.gz |
test/codegen: port structs test to codegen
And delete them from asm_test.
Change-Id: Ia286239a3d8f3915f2ca25dbcb39f3354a4f8aea
Reviewed-on: https://go-review.googlesource.com/101138
Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'test/codegen/structs.go')
-rw-r--r-- | test/codegen/structs.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/codegen/structs.go b/test/codegen/structs.go new file mode 100644 index 0000000000..b81ad67c44 --- /dev/null +++ b/test/codegen/structs.go @@ -0,0 +1,46 @@ +// asmcheck + +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package codegen + +// This file contains code generation tests related to the handling of +// struct types. + +// ------------- // +// Zeroing // +// ------------- // + +type Z1 struct { + a, b, c int +} + +func Zero1(t *Z1) { // Issue #18370 + // amd64:`XORPS\tX., X`,`MOVUPS\tX., \(.*\)`,`MOVQ\t\$0, 16\(.*\)` + *t = Z1{} +} + +type Z2 struct { + a, b, c *int +} + +func Zero2(t *Z2) { + // amd64:`XORPS\tX., X`,`MOVUPS\tX., \(.*\)`,`MOVQ\t\$0, 16\(.*\)` + // amd64:`.*runtime[.]gcWriteBarrier\(SB\)` + *t = Z2{} +} + +// ------------------ // +// Initializing // +// ------------------ // + +type I1 struct { + a, b, c, d int +} + +func Init1(p *I1) { // Issue #18872 + // amd64:`MOVQ\t[$]1`,`MOVQ\t[$]2`,`MOVQ\t[$]3`,`MOVQ\t[$]4` + *p = I1{1, 2, 3, 4} +} |