diff options
| author | Cherry Zhang <cherryyz@google.com> | 2020-04-24 13:02:37 -0400 |
|---|---|---|
| committer | Cherry Zhang <cherryyz@google.com> | 2020-04-24 17:22:57 +0000 |
| commit | 880ef2da7b81fe2e4e9fb75f4677377eeba70d1e (patch) | |
| tree | f5c19ee74b195d2f8e95149f853c459d6a8fe98c /src | |
| parent | f2d8da1a353b493548e211b06fdf47bd998ad4b6 (diff) | |
| download | go-880ef2da7b81fe2e4e9fb75f4677377eeba70d1e.tar.xz | |
[dev.link] cmd/link: panic if HeadType is not set
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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/link/internal/ld/target.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/target.go b/src/cmd/link/internal/ld/target.go index 7aa2c1ccd0..8c07d77fd8 100644 --- a/src/cmd/link/internal/ld/target.go +++ b/src/cmd/link/internal/ld/target.go @@ -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 // |
