From: Keith Randall Date: Sat, 27 Feb 2016 00:32:01 +0000 (-0800) Subject: [dev.ssa] cmd/compile: with -N, don't put JMPs after calls X-Git-Tag: go1.7beta1~1623^2^2~15 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=91f69c675de947e169ebec60b68a752e3ccc6912;p=gostls13.git [dev.ssa] cmd/compile: with -N, don't put JMPs after calls plive doesn't like the fact that we put JMPs right after CALL ops to select{send,recv}. Fixes SSA -N build. Change-Id: I9b3c9e5293196094fd5a6206dd2f99784951f7a9 Reviewed-on: https://go-review.googlesource.com/19982 Run-TryBot: Keith Randall TryBot-Result: Gobot Gobot Reviewed-by: David Chase --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index a64bdd07bd..9847806110 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -3597,10 +3597,11 @@ func genssa(f *ssa.Func, ptxt *obj.Prog, gcargs, gclocals *Sym) { } // Emit control flow instructions for block var next *ssa.Block - if i < len(f.Blocks)-1 && Debug['N'] == 0 { + if i < len(f.Blocks)-1 && (Debug['N'] == 0 || b.Kind == ssa.BlockCall) { // If -N, leave next==nil so every block with successors - // ends in a JMP. Helps keep line numbers for otherwise - // empty blocks. + // ends in a JMP (except call blocks - plive doesn't like + // select{send,recv} followed by a JMP call). Helps keep + // line numbers for otherwise empty blocks. next = f.Blocks[i+1] } x := Pc