1
0
mirror of https://github.com/golang/go synced 2024-10-05 16:41:21 -06:00

[dev.ssa] cmd/compile: fix function call memory

We need to move the memory variable update back to before endBlock
so that all successors use the right memory value.

See https://go-review.googlesource.com/13560

Change-Id: Id72e5526c56e5e070b933d3b28dc503a5a2978dc
Reviewed-on: https://go-review.googlesource.com/13586
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
Keith Randall 2015-08-12 12:54:47 -07:00
parent ce97788914
commit d56d2fa206

View File

@ -1311,6 +1311,7 @@ func (s *state) expr(n *Node) *ssa.Value {
}
dowidth(left.Type)
call.AuxInt = left.Type.Argwid // call operations carry the argsize of the callee along with them
s.vars[&memvar] = call
b := s.endBlock()
b.Kind = ssa.BlockCall
b.Control = call
@ -1319,7 +1320,6 @@ func (s *state) expr(n *Node) *ssa.Value {
// read result from stack at the start of the fallthrough block
s.startBlock(bNext)
s.vars[&memvar] = call
var titer Iter
fp := Structfirst(&titer, Getoutarg(left.Type))
if fp == nil {