From b2f2446b46bf02821d90ebedadae2bf7ae0e880e Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Mon, 5 Sep 2022 14:27:54 +0200 Subject: go.mod, vendor: update (#3358) * go.mod, vendor: remove unnecessary dependencies Commands: 1. go mod tidy 2. go mod vendor * go.mod, vendor: update cloud.google.com/go Commands: 1. go get -u cloud.google.com/go 2. go mod tidy 3. go mod vendor * go.mod, vendor: update cloud.google.com/* Commands: 1. go get -u cloud.google.com/storage cloud.google.com/logging 2. go mod tidy 3. go mod vendor * go.mod, .golangci.yml, vendor: update *lint* Commands: 1. go get -u golang.org/x/tools github.com/golangci/golangci-lint@v1.47.0 2. go mod tidy 3. go mod vendor 4. edit .golangci.yml to suppress new errors (resolved in the same PR later) * all: fix lint errors hash.go: copy() recommended by gosimple parse.go: ent is never nil verifier.go: signal.Notify() with unbuffered channel is bad. Have no idea why. * .golangci.yml: adjust godot rules check-all is deprecated, but still work if you're hesitating too - I'll remove this commit --- vendor/github.com/gostaticanalysis/analysisutil/ssa.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'vendor/github.com/gostaticanalysis/analysisutil/ssa.go') diff --git a/vendor/github.com/gostaticanalysis/analysisutil/ssa.go b/vendor/github.com/gostaticanalysis/analysisutil/ssa.go index 517f6b9b4..2e22bbe79 100644 --- a/vendor/github.com/gostaticanalysis/analysisutil/ssa.go +++ b/vendor/github.com/gostaticanalysis/analysisutil/ssa.go @@ -20,7 +20,8 @@ func IfInstr(b *ssa.BasicBlock) *ssa.If { } // Phi returns phi values which are contained in the block b. -func Phi(b *ssa.BasicBlock) (phis []*ssa.Phi) { +func Phi(b *ssa.BasicBlock) []*ssa.Phi { + var phis []*ssa.Phi for _, instr := range b.Instrs { if phi, ok := instr.(*ssa.Phi); ok { phis = append(phis, phi) @@ -29,7 +30,7 @@ func Phi(b *ssa.BasicBlock) (phis []*ssa.Phi) { break } } - return + return phis } // Returns returns a slice of *ssa.Return in the function. @@ -54,10 +55,14 @@ func Returns(v ssa.Value) []*ssa.Return { func returnsInBlock(b *ssa.BasicBlock, done map[*ssa.BasicBlock]bool) (rets []*ssa.Return) { if done[b] { - return + return nil } done[b] = true + if b.Index != 0 && len(b.Preds) == 0 { + return nil + } + if len(b.Instrs) != 0 { switch instr := b.Instrs[len(b.Instrs)-1].(type) { case *ssa.Return: @@ -68,7 +73,8 @@ func returnsInBlock(b *ssa.BasicBlock, done map[*ssa.BasicBlock]bool) (rets []*s for _, s := range b.Succs { rets = append(rets, returnsInBlock(s, done)...) } - return + + return rets } // BinOp returns binary operator values which are contained in the block b. -- cgit mrf-deployment