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"
 }