]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix incorrect go:noinline usage
authorHugues Bruant <hugues.bruant@gmail.com>
Wed, 25 Oct 2017 04:57:51 +0000 (21:57 -0700)
committerMichael Munday <mike.munday@ibm.com>
Mon, 30 Oct 2017 07:48:21 +0000 (07:48 +0000)
This pragma is not actually honored by the compiler.
The tests implicitly relied on the inliner being unable
to inline closures with captured variables, which will
soon change.

Fixes #22208

Change-Id: I13abc9c930b9156d43ec216f8efb768952a29439
Reviewed-on: https://go-review.googlesource.com/73211
Reviewed-by: Michael Munday <mike.munday@ibm.com>
src/cmd/compile/internal/gc/asm_test.go

index cdd7c3b7359ef6570077f69628bb2ca938d93f60..e661d199d4551fa674ef9c9494d368056dd87140 100644 (file)
@@ -242,7 +242,7 @@ var allAsmTests = []*asmTests{
        {
                arch:    "arm",
                os:      "linux",
-               imports: []string{"math/bits"},
+               imports: []string{"math/bits", "runtime"},
                tests:   linuxARMTests,
        },
        {
@@ -1020,12 +1020,11 @@ var linuxAMD64Tests = []*asmTest{
                // make sure assembly output has matching offset and base register.
                fn: `
                func f72(a, b int) int {
-                       //go:noinline
-                       func() {_, _ = a, b} () // use some frame
+                       runtime.GC() // use some frame
                        return b
                }
                `,
-               pos: []string{"b\\+40\\(SP\\)"},
+               pos: []string{"b\\+24\\(SP\\)"},
        },
        {
                // check load combining
@@ -1803,8 +1802,7 @@ var linuxARMTests = []*asmTest{
                // make sure assembly output has matching offset and base register.
                fn: `
                func f13(a, b int) int {
-                       //go:noinline
-                       func() {_, _ = a, b} () // use some frame
+                       runtime.GC() // use some frame
                        return b
                }
                `,