cmd/vet: infer asm arch from build context

If we cannot infer the asm arch from the filename
or the build tags, assume that it is the
current build arch. Assembly files with no
restrictions ought to be usable on all arches.

Updates #11041

Change-Id: I0ae807dbbd5fb67ca21d0157fe180237a074113a
Reviewed-on: https://go-review.googlesource.com/27151
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
Josh Bleecher Snyder 2016-07-11 12:19:51 -07:00
parent 752e161587
commit 2b8e143dc3
1 changed files with 12 additions and 2 deletions

View File

@ -10,6 +10,7 @@ import (
"bytes"
"fmt"
"go/ast"
"go/build"
"go/token"
"regexp"
"strconv"
@ -179,8 +180,17 @@ Files:
if m := asmTEXT.FindStringSubmatch(line); m != nil {
flushRet()
if arch == "" {
f.Warnf(token.NoPos, "%s: cannot determine architecture for assembly file", f.name)
continue Files
for _, a := range arches {
if a.name == build.Default.GOARCH {
arch = a.name
archDef = a
break
}
}
if arch == "" {
f.Warnf(token.NoPos, "%s: cannot determine architecture for assembly file", f.name)
continue Files
}
}
fnName = m[1]
fn = knownFunc[m[1]][arch]