mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: expand large stack frame error messages
Change-Id: Ib9f621e380dd9a6beace27ec5ff62780012f8274 Reviewed-on: https://go-review.googlesource.com/c/144600 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
f28191340e
commit
cc36b835e4
3 changed files with 19 additions and 6 deletions
|
|
@ -689,10 +689,14 @@ func Main(archInit func(*Arch)) {
|
|||
|
||||
// Check whether any of the functions we have compiled have gigantic stack frames.
|
||||
obj.SortSlice(largeStackFrames, func(i, j int) bool {
|
||||
return largeStackFrames[i].Before(largeStackFrames[j])
|
||||
return largeStackFrames[i].pos.Before(largeStackFrames[j].pos)
|
||||
})
|
||||
for _, largePos := range largeStackFrames {
|
||||
yyerrorl(largePos, "stack frame too large (>1GB)")
|
||||
for _, large := range largeStackFrames {
|
||||
if large.callee != 0 {
|
||||
yyerrorl(large.pos, "stack frame too large (>1GB): %d MB locals + %d MB args + %d MB callee", large.locals>>20, large.args>>20, large.callee>>20)
|
||||
} else {
|
||||
yyerrorl(large.pos, "stack frame too large (>1GB): %d MB locals + %d MB args", large.locals>>20, large.args>>20)
|
||||
}
|
||||
}
|
||||
|
||||
if len(compilequeue) != 0 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue