mirror of https://github.com/golang/go.git
cmd/compile: sort liveness variable reports
Sort variables before display so that when there are multiple variables to report, they are in a consistent order. Otherwise they are ordered in the order they appear in the fn.Dcl list, which can vary. Particularly, they vary depending on regabi. Change-Id: I0db380f7cbe6911e87177503a4c3b39851ff1b5a Reviewed-on: https://go-review.googlesource.com/c/go/+/462898 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
This commit is contained in:
parent
780fa24260
commit
4ff074945a
|
|
@ -1106,11 +1106,18 @@ func (lv *liveness) showlive(v *ssa.Value, live bitvec.BitVec) {
|
||||||
s += "indirect call:"
|
s += "indirect call:"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sort variable names for display. Variables aren't in any particular order, and
|
||||||
|
// the order can change by architecture, particularly with differences in regabi.
|
||||||
|
var names []string
|
||||||
for j, n := range lv.vars {
|
for j, n := range lv.vars {
|
||||||
if live.Get(int32(j)) {
|
if live.Get(int32(j)) {
|
||||||
s += fmt.Sprintf(" %v", n)
|
names = append(names, n.Sym().Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sort.Strings(names)
|
||||||
|
for _, v := range names {
|
||||||
|
s += " " + v
|
||||||
|
}
|
||||||
|
|
||||||
base.WarnfAt(pos, s)
|
base.WarnfAt(pos, s)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -698,9 +698,9 @@ func f41(p, q *int) (r *int) { // ERROR "live at entry to f41: p q$"
|
||||||
defer func() {
|
defer func() {
|
||||||
recover()
|
recover()
|
||||||
}()
|
}()
|
||||||
printint(0) // ERROR "live at call to printint: q r .autotmp_[0-9]+$"
|
printint(0) // ERROR "live at call to printint: .autotmp_[0-9]+ q r$"
|
||||||
r = q
|
r = q
|
||||||
return // ERROR "live at call to f41.func1: r .autotmp_[0-9]+$"
|
return // ERROR "live at call to f41.func1: .autotmp_[0-9]+ r$"
|
||||||
}
|
}
|
||||||
|
|
||||||
func f42() {
|
func f42() {
|
||||||
|
|
|
||||||
|
|
@ -693,7 +693,7 @@ func f41(p, q *int) (r *int) { // ERROR "live at entry to f41: p q$"
|
||||||
defer func() {
|
defer func() {
|
||||||
recover()
|
recover()
|
||||||
}()
|
}()
|
||||||
printint(0) // ERROR "live at call to printint: q .autotmp_[0-9]+ r$"
|
printint(0) // ERROR "live at call to printint: .autotmp_[0-9]+ q r$"
|
||||||
r = q
|
r = q
|
||||||
return // ERROR "live at call to f41.func1: .autotmp_[0-9]+ r$"
|
return // ERROR "live at call to f41.func1: .autotmp_[0-9]+ r$"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue