passes run.bash and race.bash (on Darwin-amd64)
Change-Id: I2abda9636b681d050e85e88fc357ebe5220d2ba2
Reviewed-on: https://go-review.googlesource.com/c/go/+/246938
Trust: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
case OCALLFUNC:
if k == callNormal && fn.Op == ONAME && fn.Class() == PFUNC {
sym = fn.Sym
- if !returnResultAddr && ssa.LateCallExpansionEnabledWithin(s.f) {
+ if ssa.LateCallExpansionEnabledWithin(s.f) {
testLateExpansion = true
}
break
}
if k == callNormal {
sym = fn.Sym
- if !returnResultAddr && ssa.LateCallExpansionEnabledWithin(s.f) {
+ if ssa.LateCallExpansionEnabledWithin(s.f) {
testLateExpansion = true
}
break
}
fp := res.Field(0)
if returnResultAddr {
- return s.constOffPtrSP(types.NewPtr(fp.Type), fp.Offset+Ctxt.FixedFrameSize())
+ pt := types.NewPtr(fp.Type)
+ if testLateExpansion {
+ return s.newValue1I(ssa.OpSelectNAddr, pt, 0, call)
+ }
+ return s.constOffPtrSP(pt, fp.Offset+Ctxt.FixedFrameSize())
}
if testLateExpansion {