1
0
mirror of https://github.com/golang/go synced 2024-11-17 05:14:56 -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
issue8756
issue8828
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
callback_c_gccgo.c
callback_c.c
callback.go cmd/cgo: always use a function literal for pointer checking 2016-10-19 21:20:50 +00:00
cflags.go
cgo_linux_test.go
cgo_stubs_android_test.go
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
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
cthread_unix.c
cthread_windows.c
cthread.go
duplicate_symbol.go
env.go
exports.go
fpvar.go
gcc68255.go
helpers.go
issue1222.go
issue1328.go
issue1560.go
issue1635.go
issue2462.go
issue3250.go
issue3250w.go
issue3261.go
issue3729.go
issue3729w.go
issue3741.go
issue3775.go
issue3945.go
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
issue4273b.c
issue4339.c
issue4339.go
issue4339.h
issue4417.go
issue4857.go
issue5227.go
issue5242.go
issue5337.go
issue5337w.go
issue5548_c.c
issue5548.go
issue5603.go
issue5740.go
issue5740a.c
issue5740b.c
issue5986.go
issue6128.go
issue6390.go
issue6472.go
issue6506.go
issue6612.go cmd/cgo: support floating point #define macros 2017-04-07 21:09:44 +00:00
issue6833_c.c
issue6833.go
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
issue6997_linux.go
issue7234_test.go
issue7560.go
issue7665.go
issue7786.go
issue7978.go misc/cgo/test: set the traceback level instead of failing the test 2017-09-13 02:53:11 +00:00
issue8092.go
issue8148.go
issue8331.h
issue8331a.go
issue8331b.go
issue8428.go
issue8441.go
issue8517_windows.c
issue8517_windows.go
issue8517.go
issue8694.go
issue8756.go
issue8811.c
issue8811.go
issue8828.go
issue8945.go
issue9026.go
issue9400_linux.go
issue9510.go
issue9557.go
issue10303.go
issue11925.go
issue12030.go
issue13402.go
issue13930.go
issue14838.go
issue17065.go
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
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