]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: panic if HeadType is not set
authorCherry Zhang <cherryyz@google.com>
Fri, 24 Apr 2020 17:02:37 +0000 (13:02 -0400)
committerCherry Zhang <cherryyz@google.com>
Fri, 24 Apr 2020 17:22:57 +0000 (17:22 +0000)
In the code there are conditions like !ctxt.IsDarwin(). This will
accidentally be true if HeadType is not yet set. Panic when
HeadType is not set, to catch errors.

Change-Id: Ic891123f27f0276fff5a4b5d29e5b1f7ebbb94ee
Reviewed-on: https://go-review.googlesource.com/c/go/+/229869
Run-TryBot: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/link/internal/ld/target.go

index 7aa2c1ccd0c873359e1711ae9b3d9a0f0b33fa4f..8c07d77fd880222eb9d9abd015d7a07f5478d3bf 100644 (file)
@@ -61,6 +61,7 @@ func (t *Target) CanUsePlugins() bool {
 }
 
 func (t *Target) IsElf() bool {
+       t.mustSetHeadType()
        return t.IsELF
 }
 
@@ -112,37 +113,51 @@ func (t *Target) IsWasm() bool {
 //
 
 func (t *Target) IsLinux() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hlinux
 }
 
 func (t *Target) IsDarwin() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hdarwin
 }
 
 func (t *Target) IsWindows() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hwindows
 }
 
 func (t *Target) IsPlan9() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hplan9
 }
 
 func (t *Target) IsAIX() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Haix
 }
 
 func (t *Target) IsSolaris() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hsolaris
 }
 
 func (t *Target) IsNetbsd() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hnetbsd
 }
 
 func (t *Target) IsOpenbsd() bool {
+       t.mustSetHeadType()
        return t.HeadType == objabi.Hopenbsd
 }
 
+func (t *Target) mustSetHeadType() {
+       if t.HeadType == objabi.Hunknown {
+               panic("HeadType is not set")
+       }
+}
+
 //
 // MISC
 //