]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: exit before Asmb2 if error
authorCherry Zhang <cherryyz@google.com>
Tue, 19 Jan 2021 16:02:10 +0000 (11:02 -0500)
committerCherry Zhang <cherryyz@google.com>
Tue, 19 Jan 2021 17:33:33 +0000 (17:33 +0000)
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 <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/link/internal/ld/main.go

index 64f52bc52f8b58c237aa60054e27b10ee2a47a78..5a096f1b3b9fd2c27e564f4f0e60992d71f48e4f 100644 (file)
@@ -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")