]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/vet: infer asm arch from build context
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 11 Jul 2016 19:19:51 +0000 (12:19 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Wed, 17 Aug 2016 20:49:59 +0000 (20:49 +0000)
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>
src/cmd/vet/asmdecl.go

index d543b2ee5c66620abd1f81e41ea3fe39c7619db9..bd336cb662f15e4d242ef8881d482fb181fb8c40 100644 (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]