From ccb2e906882e45fe2d22c31049185208adbfb62e Mon Sep 17 00:00:00 2001 From: Cherry Zhang Date: Tue, 19 Jan 2021 11:02:10 -0500 Subject: [PATCH] cmd/link: exit before Asmb2 if error If there are already errors emitted, don't run the Asmb2 pass and just exit. At the point of Asmb2 relocations are already resolved and errors should have been reported, if any. Asmb2 is unlikely to emit additional useful users errors. Instead, the invalid input may cause inconsistencies and crash the linker, or it may emit some internal errors which are more confusing than helpful. Exit on error before Asmb2. Fixes #43748. Change-Id: Icf6e27f2eef5b6259e921ec0e64bebad5dd805f8 Reviewed-on: https://go-review.googlesource.com/c/go/+/284576 Trust: Cherry Zhang Run-TryBot: Cherry Zhang TryBot-Result: Go Bot Reviewed-by: Than McIntosh --- src/cmd/link/internal/ld/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cmd/link/internal/ld/main.go b/src/cmd/link/internal/ld/main.go index 64f52bc52f..5a096f1b3b 100644 --- a/src/cmd/link/internal/ld/main.go +++ b/src/cmd/link/internal/ld/main.go @@ -338,6 +338,8 @@ func Main(arch *sys.Arch, theArch Arch) { bench.Start("Asmb") asmb(ctxt) + exitIfErrors() + // Generate additional symbols for the native symbol table just prior // to code generation. bench.Start("GenSymsLate") -- 2.50.0