From: Hugues Bruant Date: Wed, 25 Oct 2017 04:57:51 +0000 (-0700) Subject: cmd/compile: fix incorrect go:noinline usage X-Git-Tag: go1.10beta1~545 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3c46f49f9449eba44eebf318e59f18db79e7bd18;p=gostls13.git cmd/compile: fix incorrect go:noinline usage 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 --- diff --git a/src/cmd/compile/internal/gc/asm_test.go b/src/cmd/compile/internal/gc/asm_test.go index cdd7c3b735..e661d199d4 100644 --- a/src/cmd/compile/internal/gc/asm_test.go +++ b/src/cmd/compile/internal/gc/asm_test.go @@ -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 } `,