[release-branch.go1.3] go.tools/go/pointer: fix crash in constraint generation of ssa.Convert to a named unsafe.Pointer type.
««« CL 106060046 / 2ced0a1d47e3 go.tools/go/pointer: fix crash in constraint generation of ssa.Convert to a named unsafe.Pointer type. + test. Fixes golang/go#8231. LGTM=gri R=gri CC=golang-codereviews https://golang.org/cl/106060046 »»» TBR=rsc R=rsc CC=golang-codereviews https://golang.org/cl/127060043
This commit is contained in:
parent
a89089ae07
commit
bd92d52adb
|
@ -431,7 +431,7 @@ func (a *analysis) genConv(conv *ssa.Convert, cgn *cgnode) {
|
|||
|
||||
case *types.Pointer:
|
||||
// *T -> unsafe.Pointer?
|
||||
if tDst == tUnsafePtr {
|
||||
if tDst.Underlying() == tUnsafePtr {
|
||||
// ignore for now
|
||||
// a.copy(res, a.valueNode(conv.X), 1)
|
||||
return
|
||||
|
|
|
@ -49,9 +49,17 @@ func conv4() {
|
|||
print(p) // @pointsto convert@c2p:13
|
||||
}
|
||||
|
||||
// Regression test for b/8231.
|
||||
func conv5() {
|
||||
type P unsafe.Pointer
|
||||
var i *struct{}
|
||||
_ = P(i)
|
||||
}
|
||||
|
||||
func main() {
|
||||
conv1()
|
||||
conv2()
|
||||
conv3()
|
||||
conv4()
|
||||
conv5()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue