mirror of
https://github.com/golang/go
synced 2024-11-18 19:54:44 -07:00
cmd/compile: classify more nodes as "poor choices" for statements
Aggregate-making nodes that are later decomposed are poor choices for statements, because the decomposition phase turns them into multiple sub-values, some of which may be dead. Better to look elsewhere for a statement mark. Change-Id: Ibd9584138ab3d1384548686896a28580a2e43f54 Reviewed-on: https://go-review.googlesource.com/c/go/+/198477 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jeremy Faller <jeremy@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
6139019efa
commit
53bd915109
@ -15,7 +15,9 @@ func isPoorStatementOp(op Op) bool {
|
||||
switch op {
|
||||
// Note that Nilcheck often vanishes, but when it doesn't, you'd love to start the statement there
|
||||
// so that a debugger-user sees the stop before the panic, and can examine the value.
|
||||
case OpAddr, OpLocalAddr, OpOffPtr, OpStructSelect, OpConstBool, OpConst8, OpConst16, OpConst32, OpConst64, OpConst32F, OpConst64F:
|
||||
case OpAddr, OpLocalAddr, OpOffPtr, OpStructSelect,
|
||||
OpIMake, OpStringMake, OpSliceMake, OpStructMake0, OpStructMake1, OpStructMake2, OpStructMake3, OpStructMake4,
|
||||
OpConstBool, OpConst8, OpConst16, OpConst32, OpConst64, OpConst32F, OpConst64F:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
Loading…
Reference in New Issue
Block a user