From 7a5597c226b4ace3d90343c89ca82bcbbe8dc6e2 Mon Sep 17 00:00:00 2001 From: Alan Donovan Date: Thu, 12 Sep 2013 10:56:37 -0400 Subject: [PATCH] go.tools/pointer: suppress warnings from unsafe.Pointer conversions in the "syscall" package. This is a short-term usability measure. Longer term, we need to audit each conversion to decide whether it should be ignored or modelled by an analytic summary. R=crawshaw CC=golang-dev https://golang.org/cl/13263050 --- pointer/gen.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pointer/gen.go b/pointer/gen.go index 2c00053a..624252ad 100644 --- a/pointer/gen.go +++ b/pointer/gen.go @@ -450,9 +450,14 @@ func (a *analysis) genConv(conv *ssa.Convert) { case *types.Pointer: // unsafe.Pointer -> *T? (currently unsound) if utSrc == tUnsafePtr { - a.warnf(conv.Pos(), - "unsound: %s contains an unsafe.Pointer conversion (to %s)", - conv.Parent(), tDst) + // For now, suppress unsafe.Pointer conversion + // warnings on "syscall" package. + // TODO(adonovan): audit for soundness. + if conv.Parent().Pkg.Object.Path() != "syscall" { + a.warnf(conv.Pos(), + "unsound: %s contains an unsafe.Pointer conversion (to %s)", + conv.Parent(), tDst) + } // For now, we treat unsafe.Pointer->*T // conversion like new(T) and create an