From 8a4d05cf07cddb724422d24e57c18c1bd8d8ad02 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Wed, 5 Feb 2020 13:36:53 -0500 Subject: [PATCH] cmd/go/internal/vet: only set work.VetExplicit if the list of explicit flags is non-empty Updates #35837 Fixes #37030 Change-Id: Ifd3435803622a8624bab55a0f3fbc8855025282f Reviewed-on: https://go-review.googlesource.com/c/go/+/217897 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Jay Conrod --- src/cmd/go/internal/vet/vet.go | 4 +++- src/cmd/go/testdata/script/vet_flags.txt | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/cmd/go/internal/vet/vet.go b/src/cmd/go/internal/vet/vet.go index 660a739fbbd..4e09c0fb9c9 100644 --- a/src/cmd/go/internal/vet/vet.go +++ b/src/cmd/go/internal/vet/vet.go @@ -51,7 +51,9 @@ func runVet(cmd *base.Command, args []string) { work.BuildInit() work.VetFlags = vetFlags - work.VetExplicit = true + if len(vetFlags) > 0 { + work.VetExplicit = true + } if vetTool != "" { var err error work.VetTool, err = filepath.Abs(vetTool) diff --git a/src/cmd/go/testdata/script/vet_flags.txt b/src/cmd/go/testdata/script/vet_flags.txt index 6aa1413fa43..f2cf021f628 100644 --- a/src/cmd/go/testdata/script/vet_flags.txt +++ b/src/cmd/go/testdata/script/vet_flags.txt @@ -6,6 +6,17 @@ go vet -n -unreachable=false encoding/binary stderr '-unreachable=false' ! stderr '-unsafeptr=false' +# Issue 37030: "go vet " without other flags should disable the +# unsafeptr check by default. +go vet -n encoding/binary +stderr '-unsafeptr=false' +! stderr '-unreachable=false' + +# However, it should be enabled if requested explicitly. +go vet -n -unsafeptr encoding/binary +stderr '-unsafeptr' +! stderr '-unsafeptr=false' + [short] stop env GOCACHE=$WORK/gocache env GOTMPDIR=$WORK/tmp