diff options
author | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2021-03-04 14:27:36 +0700 |
---|---|---|
committer | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2021-03-05 18:45:59 +0000 |
commit | 70b277cf2e953bb9994b00898280f4659a47471e (patch) | |
tree | 5c41e19b2b3877fa9ff731490d1b1727f7fb924f /src/cmd/compile/internal/typecheck/typecheck.go | |
parent | d4247f516724cae2e84a4d1bef71bd47aa2fd1d8 (diff) | |
download | go-70b277cf2e953bb9994b00898280f4659a47471e.tar.gz go-70b277cf2e953bb9994b00898280f4659a47471e.zip |
cmd/compile: only check return for valid functions
CheckReturn uses fn.Type() unconditionally, so for invalid function,
fn.Type() will be nil, causes the compiler crashes.
Updates #43311
Change-Id: I4420dd296c72ea83986b38fbf2c7f51fa59757c8
Reviewed-on: https://go-review.googlesource.com/c/go/+/298709
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/typecheck/typecheck.go')
-rw-r--r-- | src/cmd/compile/internal/typecheck/typecheck.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/typecheck/typecheck.go b/src/cmd/compile/internal/typecheck/typecheck.go index 240f0409e7..030158b1a1 100644 --- a/src/cmd/compile/internal/typecheck/typecheck.go +++ b/src/cmd/compile/internal/typecheck/typecheck.go @@ -2104,7 +2104,7 @@ func CheckUnused(fn *ir.Func) { // CheckReturn makes sure that fn terminates appropriately. func CheckReturn(fn *ir.Func) { - if fn.Type().NumResults() != 0 && len(fn.Body) != 0 { + if fn.Type() != nil && fn.Type().NumResults() != 0 && len(fn.Body) != 0 { markBreak(fn) if !isTermNodes(fn.Body) { base.ErrorfAt(fn.Endlineno, "missing return at end of function") |