aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/logopt
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/logopt')
-rw-r--r--src/cmd/compile/internal/logopt/log_opts.go13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/cmd/compile/internal/logopt/log_opts.go b/src/cmd/compile/internal/logopt/log_opts.go
index f74be6a63c..b731e55938 100644
--- a/src/cmd/compile/internal/logopt/log_opts.go
+++ b/src/cmd/compile/internal/logopt/log_opts.go
@@ -532,12 +532,9 @@ func appendInlinedPos(posTmp, lastTmp []src.Pos, diagnostic *Diagnostic) {
// parsePos expands a src.XPos into a slice of src.Pos, with the outermost first.
// It returns the slice, and the outermost.
func parsePos(ctxt *obj.Link, pos src.XPos, posTmp []src.Pos) ([]src.Pos, src.Pos) {
- posTmp = ctxt.AllPos(pos, posTmp)
- // Reverse posTmp to put outermost first.
- l := len(posTmp)
- for i := 0; i < l/2; i++ {
- posTmp[i], posTmp[l-i-1] = posTmp[l-i-1], posTmp[i]
- }
- p0 := posTmp[0]
- return posTmp, p0
+ posTmp = posTmp[:0]
+ ctxt.AllPos(pos, func(p src.Pos) {
+ posTmp = append(posTmp, p)
+ })
+ return posTmp, posTmp[0]
}