cmd/compile: make check2 gracefully exit if it reported errors
Otherwise, if -d=panic was set, check2 will treat already reported
error as internal compiler error.
For #43311
Fixes #44445
Change-Id: I5dbe06334666df21d9107396b9dcfdd905aa1e44
Reviewed-on: https://go-review.googlesource.com/c/go/+/294850
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>
diff --git a/src/cmd/compile/internal/noder/irgen.go b/src/cmd/compile/internal/noder/irgen.go
index 28536cc..da5b024 100644
--- a/src/cmd/compile/internal/noder/irgen.go
+++ b/src/cmd/compile/internal/noder/irgen.go
@@ -68,10 +68,10 @@
}
pkg, err := conf.Check(base.Ctxt.Pkgpath, files, &info)
files = nil
+ base.ExitIfErrors()
if err != nil {
base.FatalfAt(src.NoXPos, "conf.Check error: %v", err)
}
- base.ExitIfErrors()
if base.Flag.G < 2 {
os.Exit(0)
}
diff --git a/test/fixedbugs/bug188.go b/test/fixedbugs/bug188.go
index 5506147..8195e36 100644
--- a/test/fixedbugs/bug188.go
+++ b/test/fixedbugs/bug188.go
@@ -1,4 +1,4 @@
-// errorcheck
+// errorcheck -d=panic
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
@@ -9,7 +9,7 @@
import "sort"
func main() {
- sort.Sort(nil);
- var x int;
- sort(x); // ERROR "package"
+ sort.Sort(nil)
+ var x int
+ sort(x) // ERROR "package"
}
diff --git a/test/fixedbugs/bug358.go b/test/fixedbugs/bug358.go
index 5ca0be1..541051c 100644
--- a/test/fixedbugs/bug358.go
+++ b/test/fixedbugs/bug358.go
@@ -1,4 +1,4 @@
-// errorcheck
+// errorcheck -d=panic
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
diff --git a/test/fixedbugs/bug397.go b/test/fixedbugs/bug397.go
index db8d652..bf3a5ff 100644
--- a/test/fixedbugs/bug397.go
+++ b/test/fixedbugs/bug397.go
@@ -1,4 +1,4 @@
-// errorcheck
+// errorcheck -d=panic
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
@@ -7,7 +7,7 @@
package main
// Issue 2623
-var m = map[string]int {
- "abc":1,
- 1:2, // ERROR "cannot use 1.*as type string in map key|incompatible type|cannot convert"
+var m = map[string]int{
+ "abc": 1,
+ 1: 2, // ERROR "cannot use 1.*as type string in map key|incompatible type|cannot convert"
}