mirror of
https://github.com/golang/go
synced 2024-11-23 20:30:04 -07:00
cmd/compile: define starting block before opening html writer
Opening the html writer can fail, and the failure printer wants to use the entry block's line number. So make sure we set up the entry block first. Fixes #40919 Change-Id: I4ffa2839b45a721bbaf04ff84418e8108fa1cc37 Reviewed-on: https://go-review.googlesource.com/c/go/+/249497 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
8ec5a052ec
commit
c57c0212eb
@ -338,6 +338,10 @@ func buildssa(fn *Node, worker int) *ssa.Func {
|
||||
s.panics = map[funcLine]*ssa.Block{}
|
||||
s.softFloat = s.config.SoftFloat
|
||||
|
||||
// Allocate starting block
|
||||
s.f.Entry = s.f.NewBlock(ssa.BlockPlain)
|
||||
s.f.Entry.Pos = fn.Pos
|
||||
|
||||
if printssa {
|
||||
s.f.HTMLWriter = ssa.NewHTMLWriter(ssaDumpFile, s.f, ssaDumpCFG)
|
||||
// TODO: generate and print a mapping from nodes to values and blocks
|
||||
@ -345,9 +349,6 @@ func buildssa(fn *Node, worker int) *ssa.Func {
|
||||
s.f.HTMLWriter.WriteAST("AST", astBuf)
|
||||
}
|
||||
|
||||
// Allocate starting block
|
||||
s.f.Entry = s.f.NewBlock(ssa.BlockPlain)
|
||||
|
||||
// Allocate starting values
|
||||
s.labels = map[string]*ssaLabel{}
|
||||
s.labeledNodes = map[*Node]*ssaLabel{}
|
||||
|
Loading…
Reference in New Issue
Block a user