mirror of
https://github.com/golang/go
synced 2024-11-12 02:20:23 -07:00
cmd/compile: invalidate CFG when fuseIf triggers
The compiler appears to have a latent bug: fusePlain calls invalidateCFG when it changes block structure, but fuseIf does not. Fix this by hoisting the call to invalidateCFG to the top level. Change-Id: Ic960fb3ac963b15b4a225aad84863d58efa954e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/177198 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
822a9f537f
commit
e7b7f87432
@ -36,6 +36,9 @@ func fuse(f *Func, typ fuseType) {
|
||||
changed = fuseBlockPlain(b) || changed
|
||||
}
|
||||
}
|
||||
if changed {
|
||||
f.invalidateCFG()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -207,7 +210,6 @@ func fuseBlockPlain(b *Block) bool {
|
||||
if f.Entry == b {
|
||||
f.Entry = c
|
||||
}
|
||||
f.invalidateCFG()
|
||||
|
||||
// trash b, just in case
|
||||
b.Kind = BlockInvalid
|
||||
|
Loading…
Reference in New Issue
Block a user