1
0
mirror of https://github.com/golang/go synced 2024-11-07 15:46:23 -07:00
go/misc/cgo/test
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
..
gcc68255 all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8756 cmd/link, cmd/go: delay linking of mingwex and mingw32 until very end 2016-08-31 06:30:26 +00:00
issue8828 all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9026
issue9400 misc/cgo/test: avoid duplicate definition with gccgo 2018-06-20 02:52:44 +00:00
issue9510a
issue9510b
issue20266 go/build: make -I/-L options in cgo flags absolute 2017-06-13 18:36:04 +00:00
issue23555a cmd/cgo: add import path to hash 2018-06-13 23:36:03 +00:00
issue23555b cmd/cgo: add import path to hash 2018-06-13 23:36:03 +00:00
issue24161arg cmd/cgo: check function argument/return types for bad C pointer types 2018-07-09 22:19:21 +00:00
issue24161e0 cmd/cgo: fix cgo bad typedefs 2018-07-12 19:15:12 +00:00
issue24161e1 cmd/cgo: fix cgo bad typedefs 2018-07-12 19:15:12 +00:00
issue24161e2 cmd/cgo: fix cgo bad typedefs 2018-07-12 19:15:12 +00:00
issue24161res cmd/cgo: check function argument/return types for bad C pointer types 2018-07-09 22:19:21 +00:00
align.go
api.go cmd/cgo: only record typedef name for pointer to struct 2016-11-01 23:06:24 +00:00
backdoor.go
basic.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
buildid_linux.go misc/cgo/test: avoid endless loop when we can't parse notes 2018-01-11 19:55:49 +00:00
callback_c_gc.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback_c_gccgo.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback.go cmd/cgo: always use a function literal for pointer checking 2016-10-19 21:20:50 +00:00
cflags.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cgo_linux_test.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cgo_stubs_android_test.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
cgo_test.go cmd/cgo: handle GCC 8 change in errors about constant initializers 2018-06-29 23:22:48 +00:00
cgo_thread_lock.go misc/cgo/test: add test that gccgo fails 2016-10-13 00:03:57 +00:00
cgo_unix_test.go runtime/cgo: retry pthread_create on EAGAIN 2016-12-05 18:46:18 +00:00
checkconst.go cmd/cgo: preserve original call arguments when pointer checking 2016-10-21 20:46:20 +00:00
complex.go cmd/compile, cmd/cgo: align complex{64,128} like GCC 2016-10-05 17:44:27 +00:00
cthread_unix.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cthread_windows.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cthread.go misc/cgo/test,cmd/dist: enable (more) Cgo tests on iOS 2016-06-02 10:09:12 +00:00
duplicate_symbol.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
env.go
exports.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
fpvar.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
gcc68255.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
helpers.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1222.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1328.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1560.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1635.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue2462.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3250.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3250w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3261.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3729.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3729w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3741.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3775.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue3945.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4029.c cmd/cgo: permit missing dynamic symbol section 2018-07-02 17:50:00 +00:00
issue4029.go cmd/cgo: permit missing dynamic symbol section 2018-07-02 17:50:00 +00:00
issue4029w.go cmd/cgo: permit missing dynamic symbol section 2018-07-02 17:50:00 +00:00
issue4054a.go
issue4054b.go
issue4273.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4273b.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4339.c
issue4339.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4339.h
issue4417.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4857.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5227.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5242.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5337.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5337w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5548_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5548.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5603.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740a.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740b.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5986.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6128.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6390.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6472.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6506.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6612.go cmd/cgo: support floating point #define macros 2017-04-07 21:09:44 +00:00
issue6833_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6833.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6907.go cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6907export_c.c cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6907export.go cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6997_linux.c misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue6997_linux.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue7234_test.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7560.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7665.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7786.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7978.go misc/cgo/test: set the traceback level instead of failing the test 2017-09-13 02:53:11 +00:00
issue8092.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8148.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331.h all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331a.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331b.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8428.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8441.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8517_windows.c
issue8517_windows.go
issue8517.go
issue8694.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue8756.go cmd/link, cmd/go: delay linking of mingwex and mingw32 until very end 2016-08-31 06:30:26 +00:00
issue8811.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8811.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8828.go
issue8945.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9026.go
issue9400_linux.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9510.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9557.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue10303.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue11925.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue12030.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue13402.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue13930.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue14838.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue17065.go misc/cgo/test: add skipped test for issue 17065 2016-09-11 20:43:11 +00:00
issue17537.go cmd/cgo: don't strip qualifiers from C void* pointer 2016-12-14 00:59:38 +00:00
issue18126.go cmd/cgo: fix cgo checking when fetching errno value 2016-12-01 02:13:50 +00:00
issue18146.go misc/cgo/test: skip Test18146 in short mode 2018-06-27 04:31:53 +00:00
issue18720.go cmd/cgo: support niladic function-like macros 2017-08-30 18:28:58 +00:00
issue20129.go cmd/cgo: unwrap typedef-chains before type checking 2017-06-27 23:02:34 +00:00
issue20266.go go/build: make -I/-L options in cgo flags absolute 2017-06-13 18:36:04 +00:00
issue20369.go cmd/cgo: support large unsigned macros 2017-05-17 14:42:29 +00:00
issue20910.c cmd/cgo: unify cgo output for gc and gccgo 2017-08-16 21:57:56 +00:00
issue20910.go cmd/cgo: unify cgo output for gc and gccgo 2017-08-16 21:57:56 +00:00
issue21668.go cmd/cgo: avoid using common names for sniffing 2017-08-29 00:42:34 +00:00
issue21708.go cmd/cgo: support large unsigned macro again 2017-09-01 00:42:21 +00:00
issue21809.go go/printer: fix formatting of three-index slice expression 2017-10-03 16:16:30 +00:00
issue21897.go cmd/cgo: special case C ptr types to use uintptr 2017-11-17 22:11:03 +00:00
issue21897b.go cmd/cgo: special case C ptr types to use uintptr 2017-11-17 22:11:03 +00:00
issue22958.go cmd/cgo: for C bitfields use only valid Go integer types 2017-12-01 23:50:23 +00:00
issue23356.go cmd/cgo: avoid name confliction for C functions 2018-06-18 18:28:02 +00:00
issue23555.go cmd/cgo: add import path to hash 2018-06-13 23:36:03 +00:00
issue23720.go misc/cgo/test: add test for passing compatible typedefs 2018-06-13 23:08:56 +00:00
issue24161_darwin_test.go cmd/cgo: fix cgo bad typedefs 2018-07-12 19:15:12 +00:00
issue24206_generic.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
issue24206.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
issue25143.go cmd/cgo: visit cgo type inside ellipsis node 2018-05-01 00:44:48 +00:00
issue26066.go cmd/cgo: handle GCC 8 change in errors about constant initializers 2018-06-29 23:22:48 +00:00
setgid_linux.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sigaltstack.go misc/cgo/test: fix test when using GCC 7 2017-01-20 21:12:19 +00:00
sigprocmask.c misc/cgo/test: add retry loop around pthread_create in TestSigprocmask 2018-06-27 04:33:10 +00:00
sigprocmask.go misc/cgo/test: log error value in testSigprocmask 2018-04-25 20:26:39 +00:00
test22906.go cmd/cgo: make JNI's jobject type map to uintptr in Go 2017-12-08 16:13:14 +00:00