gopkg.in/alecthomas/gometalinter.v3@v3.0.0/_linters/src/golang.org/x/tools/cmd/gotype/sizesFor18.go (about)

     1  // Copyright 2017 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build !go1.9
     6  
     7  // This file contains a copy of the implementation of types.SizesFor
     8  // since this function is not available in go/types before Go 1.9.
     9  
    10  package main
    11  
    12  import "go/types"
    13  
    14  const defaultCompiler = "gc"
    15  
    16  var gcArchSizes = map[string]*types.StdSizes{
    17  	"386":      {4, 4},
    18  	"arm":      {4, 4},
    19  	"arm64":    {8, 8},
    20  	"amd64":    {8, 8},
    21  	"amd64p32": {4, 8},
    22  	"mips":     {4, 4},
    23  	"mipsle":   {4, 4},
    24  	"mips64":   {8, 8},
    25  	"mips64le": {8, 8},
    26  	"ppc64":    {8, 8},
    27  	"ppc64le":  {8, 8},
    28  	"s390x":    {8, 8},
    29  }
    30  
    31  func SizesFor(compiler, arch string) types.Sizes {
    32  	if compiler != "gc" {
    33  		return nil
    34  	}
    35  	s, ok := gcArchSizes[arch]
    36  	if !ok {
    37  		return nil
    38  	}
    39  	return s
    40  }