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>
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 {
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)
}
defer func() {
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
- 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() {
defer func() {
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
return // ERROR "live at call to f41.func1: .autotmp_[0-9]+ r$"
}