go/src
Keith Randall b888a6227f cmd/cgo: fix cgo bad typedefs
Two fixes:

1) Typedefs of the bad typedefs should also not be rewritten to the
   underlying type.  They shouldn't just be uintptr, though, they should
   retain the C naming structure.  For example, in C:

   typedef const __CFString * CFStringRef;
   typedef CFStringRef SecKeyAlgorithm;

   we want the Go:

   type _Ctype_CFStringRef uintptr
   type _Ctype_SecKeyAlgorithm = _Ctype_CFStringRef

2) We need more types than just function arguments/return values.
   At least we need types of global variables, so when we see a reference to:

   extern const SecKeyAlgorithm kSecKeyAlgorithmECDSASignatureDigestX962SHA1;

   we know that we need to investigate the type SecKeyAlgorithm.
   Might as well just find every typedef and check the badness of all of them.
   This requires looping until a fixed point of known types is reached.
   Usually it takes just 2 iterations, sometimes 3.

Fixes #24161

Change-Id: I32ca7e48eb4d4133c6242e91d1879636f5224ea9
Reviewed-on: https://go-review.googlesource.com/123177
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-07-12 19:15:12 +00:00
..
archive archive/zip: warn about FileHeader.Name being unvalidated on read 2018-06-13 21:57:41 +00:00
bufio bufio: clarify SplitFunc docs for nil token 2018-06-13 21:43:06 +00:00
builtin
bytes bytes, strings: fix comparison of long byte slices on s390x 2018-06-29 20:48:07 +00:00
cmd cmd/cgo: fix cgo bad typedefs 2018-07-12 19:15:12 +00:00
compress
container
context context: add docs to ExampleWithValue 2018-06-12 22:33:54 +00:00
crypto doc: update the minimum support Windows version 2018-07-11 22:05:38 +00:00
database/sql
debug debug/elf,macho,pe: support compressed DWARF 2018-06-19 22:13:51 +00:00
encoding encoding/gob: correct issue number typo in comment 2018-06-13 05:33:59 +00:00
errors
expvar
flag flag: add a Value example 2018-06-21 23:32:53 +00:00
fmt
go go/types: ignore artificial cycles introduced via method declarations 2018-07-10 16:36:50 +00:00
hash
html html/template: ignore untyped nil arguments to default escapers 2018-07-09 21:54:35 +00:00
image all: clean up some Deprecated comments 2018-07-06 17:40:56 +00:00
index/suffixarray
internal doc: update the minimum support Windows version 2018-07-11 22:05:38 +00:00
io
log
math math/big: handle negative exponents in Exp 2018-06-14 22:26:30 +00:00
mime mime/quotedprintable: accept bytes >= 0x80 2018-06-27 17:00:08 +00:00
net net/http: update bundled http2 2018-07-12 14:28:16 +00:00
os internal/poll: don't take read lock in SetBlocking 2018-07-11 00:34:18 +00:00
path
plugin
reflect reflect: remove struct tags from unexported types 2018-06-28 23:06:00 +00:00
regexp regexp: revert "use sync.Pool to cache regexp.machine objects" 2018-07-09 15:12:53 +00:00
runtime runtime: fix reference to funcdata.go in comment 2018-07-12 15:13:10 +00:00
sort
strconv
strings strings: do much less redundant testing in TestCompareStrings 2018-07-02 14:39:29 +00:00
sync sync: fix deficiency in RWMutex race annotations 2018-06-22 14:43:09 +00:00
syscall syscall: convert Windows AddrinfoW.Addr from uintptr to syscall.Pointer 2018-07-12 15:36:15 +00:00
testing testing/cover: improve comments on CoverBlock 2018-07-01 08:07:47 +00:00
text html/template: ignore untyped nil arguments to default escapers 2018-07-09 21:54:35 +00:00
time time: fix typo in Truncate example 2018-07-12 15:01:16 +00:00
unicode unicode: fix SpecialCase to follow its docs & respect explict no-op mappings 2018-06-17 08:48:39 +00:00
unsafe
vendor/golang_org/x vendor: update vendored x/net/http/httpproxy 2018-07-09 19:35:21 +00:00
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash make.bash: don't pass GOOS and GOARCH to cmd/go when finding GOROOT_BOOTSTRAP 2018-06-20 16:04:33 +00:00
make.bat
make.rc
naclmake.bash
nacltest.bash
race.bash runtime/cgo: Add initial NetBSD Thread Sanitizer support 2018-07-10 23:14:31 +00:00
race.bat
run.bash
run.bat
run.rc