]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: Generate AUNDEF at the end of BlockExit blocks
authorKeith Randall <khr@golang.org>
Thu, 17 Sep 2015 22:19:23 +0000 (15:19 -0700)
committerKeith Randall <khr@golang.org>
Thu, 17 Sep 2015 23:31:02 +0000 (23:31 +0000)
Generate AUNDEF for every exit block, not just for certain
control values.

Change-Id: Ife500ac5159ee790bc1e70c0e9b0b1f854bc4c47
Reviewed-on: https://go-review.googlesource.com/14721
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
src/cmd/compile/internal/gc/ssa.go

index c2d2f8be4dff95c55d4b1042d25e72512ac0708c..c053eabcbad68ec5a11b2fafb50a1c6bb6241577 100644 (file)
@@ -3536,19 +3536,16 @@ func (s *genState) genValue(v *ssa.Value) {
                q.From.Reg = x86.REG_AX
                q.To.Type = obj.TYPE_MEM
                q.To.Reg = r
-               Prog(obj.AUNDEF) // tell plive.go that we never reach here
        case ssa.OpAMD64LoweredPanicIndexCheck:
                p := Prog(obj.ACALL)
                p.To.Type = obj.TYPE_MEM
                p.To.Name = obj.NAME_EXTERN
                p.To.Sym = Linksym(Panicindex.Sym)
-               Prog(obj.AUNDEF)
        case ssa.OpAMD64LoweredPanicSliceCheck:
                p := Prog(obj.ACALL)
                p.To.Type = obj.TYPE_MEM
                p.To.Name = obj.NAME_EXTERN
                p.To.Sym = Linksym(panicslice.Sym)
-               Prog(obj.AUNDEF)
        case ssa.OpAMD64LoweredGetG:
                r := regnum(v)
                // See the comments in cmd/internal/obj/x86/obj6.go
@@ -3804,6 +3801,7 @@ func (s *genState) genBlock(b, next *ssa.Block) {
                        s.branches = append(s.branches, branch{p, b.Succs[0]})
                }
        case ssa.BlockExit:
+               Prog(obj.AUNDEF) // tell plive.go that we never reach here
        case ssa.BlockRet:
                if hasdefer {
                        s.deferReturn()