go/src
Josh Bleecher Snyder 8dafdb1be1 cmd/compile: add Type.WidthCalculated
Prior to this CL, Type.Width != 0 was the mark
of a Type whose Width had been calculated.
As a result, dowidth always recalculated
the width of struct{}.
This, combined with the prohibition on calculating
the width of a FuncArgsStruct and the use of
struct{} as a function argument,
meant that there were circumstances in which
it was forbidden to call dowidth on a type.
This inhibits refactoring to call dowidth automatically,
rather than explicitly.
Instead add a helper method, Type.WidthCalculated,
and implement as Type.Align > 0.
Type.Width is not a good candidate for tracking
whether the width has been calculated;
0 is a value type width, and Width is subject to
too much magic value game-playing.

For good measure, add a test for #11354.

Change-Id: Ie9a9fb5d924e7a2010c1904ae5e38ed4a38eaeb2
Reviewed-on: https://go-review.googlesource.com/38468
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2017-03-28 18:06:09 +00:00
..
archive archive/zip: parallelize benchmarks 2017-03-15 18:26:51 +00:00
bufio
builtin
bytes bytes: fix typo in comment 2017-03-22 19:41:54 +00:00
cmd cmd/compile: add Type.WidthCalculated 2017-03-28 18:06:09 +00:00
compress Revert "all: test adjustments for the iOS builder" 2017-03-04 00:01:14 +00:00
container
context
crypto crypto/*: fix spelling of 'below' 2017-03-20 16:03:18 +00:00
database/sql database/sql: fix spelling mistake in tests 2017-03-08 18:27:19 +00:00
debug cmd/link: write dwarf sections 2017-03-01 04:51:03 +00:00
encoding encoding/gob: Speedup map decoding by reducing the allocations. 2017-03-24 19:36:14 +00:00
errors
expvar expvar: add benchmark for (*Map).Set with per-goroutine keys 2017-03-10 19:09:48 +00:00
flag flag: validate Int and Uint values to be in range 2017-03-21 17:00:26 +00:00
fmt
go go/build: remove unused returnImports parameter 2017-03-21 02:47:36 +00:00
hash hash/crc32: improve performance for ppc64le 2017-03-17 12:28:57 +00:00
html text/template,html/template: state that Funcs must happen before parsing 2017-03-21 04:07:35 +00:00
image image/png: decode Gray8 transparent images. 2017-03-17 07:50:05 +00:00
index/suffixarray
internal go/internal/srcimporter: skip tests on iOS 2017-03-08 22:31:00 +00:00
io
log
math math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
mime mime: handling invalid mime media parameters 2017-03-17 13:59:31 +00:00
net net/http/httptest: don't panic on Close of user-constructed Server value 2017-03-27 17:01:57 +00:00
os os: parse command line without shell32.dll 2017-03-24 00:53:03 +00:00
path
plugin
reflect runtime: remove unused *chantype parameters 2017-03-21 17:10:16 +00:00
regexp regexp: reduce allocations at onePassCopy 2017-03-28 17:58:10 +00:00
runtime runtime/cgo: CFRelease result from CFBundleCopyResourceURL 2017-03-27 18:12:17 +00:00
sort
strconv strconv: optimize decimal ints formatting with smallsString 2017-03-22 16:03:28 +00:00
strings strings: fix handling of invalid UTF-8 sequences in Map 2017-02-28 22:50:53 +00:00
sync
syscall os/exec: handle Unshareflags with CLONE_NEWNS 2017-03-23 17:53:18 +00:00
testing testing: fix Benchmark() to start at 1 iteration, not 100 2017-03-01 11:06:34 +00:00
text text/template,html/template: state that Funcs must happen before parsing 2017-03-21 04:07:35 +00:00
time time: make the ParseInLocation test more robust 2017-03-09 18:31:42 +00:00
unicode
unsafe
vendor/golang_org/x net/http: import updated idna package and adjust request.go 2017-03-24 13:30:17 +00:00
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash src/*.bash: use tabs consistently 2017-03-09 21:30:31 +00:00
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash *.bash: always use the same string equality operator 2017-03-14 21:46:31 +00:00
make.bash *.bash: always use the same string equality operator 2017-03-14 21:46:31 +00:00
make.bat
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash *.bash: always use the same string equality operator 2017-03-14 21:46:31 +00:00
run.bat
run.rc