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
diff --git a/go/pointer/gen.go b/go/pointer/gen.go
index 65988fb..8643545 100644
--- a/go/pointer/gen.go
+++ b/go/pointer/gen.go
@@ -434,7 +434,7 @@
 
 	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
diff --git a/go/pointer/testdata/conv.go b/go/pointer/testdata/conv.go
index 5439a39..8962317 100644
--- a/go/pointer/testdata/conv.go
+++ b/go/pointer/testdata/conv.go
@@ -49,9 +49,17 @@
 	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()
 }