aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
authorCuong Manh Le <cuong.manhle.vn@gmail.com>2021-02-19 12:42:57 +0700
committerCuong Manh Le <cuong.manhle.vn@gmail.com>2021-03-04 06:35:44 +0000
commitb7f4307761c61d2d3f563c37b0c9ad0e64899d9f (patch)
tree8ba9723632af9daf88cc31443b94a4cae3918c3c /src/cmd/compile/internal/noder
parent4532467c1854fa16378063bd99defadc4a1e5fb1 (diff)
downloadgo-b7f4307761c61d2d3f563c37b0c9ad0e64899d9f.tar.gz
go-b7f4307761c61d2d3f563c37b0c9ad0e64899d9f.zip
cmd/compile: graceful handle error in noder LoadPackage
When syntax.Parse returns error, noder.file will be nil. Currently, we continue accessing it regardlessly and depend on gc.hidePanic to hide the panic from user. Instead, we should gracefully handle the error in LoadPackage, then exit earlier if any error occurred. Updates #43311 Change-Id: I0a108ef360bd4f0cc9f481071b8967355e1513af Reviewed-on: https://go-review.googlesource.com/c/go/+/294030 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/noder')
-rw-r--r--src/cmd/compile/internal/noder/noder.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/noder/noder.go b/src/cmd/compile/internal/noder/noder.go
index d692bf97aa..8c456e4561 100644
--- a/src/cmd/compile/internal/noder/noder.go
+++ b/src/cmd/compile/internal/noder/noder.go
@@ -68,6 +68,9 @@ func LoadPackage(filenames []string) {
for e := range p.err {
p.errorAt(e.Pos, "%s", e.Msg)
}
+ if p.file == nil {
+ base.ErrorExit()
+ }
lines += p.file.EOF.Line()
}
base.Timer.AddEvent(int64(lines), "lines")