mirror of
https://github.com/golang/go.git
synced 2025-05-06 08:03:03 +00:00
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
This commit is contained in:
parent
f4ab48cb83
commit
02dba5d1e6
@ -434,7 +434,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
|
||||
|
8
go/pointer/testdata/conv.go
vendored
8
go/pointer/testdata/conv.go
vendored
@ -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…
x
Reference in New Issue
Block a user