]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: add test that non-name call does not allocate
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Wed, 28 Dec 2022 04:21:47 +0000 (11:21 +0700)
committerGopher Robot <gobot@golang.org>
Fri, 14 Apr 2023 20:24:18 +0000 (20:24 +0000)
Updates #57434

Change-Id: Ib90c228f95c3d61204e60f63d7de55884d839e05
Reviewed-on: https://go-review.googlesource.com/c/go/+/459496
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>

src/cmd/compile/internal/test/issue57434_test.go [new file with mode: 0644]

diff --git a/src/cmd/compile/internal/test/issue57434_test.go b/src/cmd/compile/internal/test/issue57434_test.go
new file mode 100644 (file)
index 0000000..6a34b54
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright 2023 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 test
+
+import (
+       "testing"
+)
+
+var output int
+
+type Object struct {
+       Val int
+}
+
+func (o *Object) Initialize() *Object {
+       o.Val = 5
+       return o
+}
+
+func (o *Object) Update() *Object {
+       o.Val = o.Val + 1
+       return o
+}
+
+func TestAutotmpLoopDepth(t *testing.T) {
+       f := func() {
+               for i := 0; i < 10; i++ {
+                       var obj Object
+                       obj.Initialize().Update()
+                       output = obj.Val
+               }
+       }
+       if n := testing.AllocsPerRun(10, f); n > 0 {
+               t.Error("obj moved to heap")
+       }
+}