diff options
author | Keith Randall <khr@golang.org> | 2018-07-31 21:31:19 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2018-08-08 00:28:44 +0000 |
commit | 0fae49df57e6b4eaaa5bc497e06df701890f9501 (patch) | |
tree | f4851767124be05994a632d4294895209f1200cf | |
parent | 0f1c9decc99e501fcc5134dba4d5a53ce0fd830d (diff) | |
download | go-0fae49df57e6b4eaaa5bc497e06df701890f9501.tar.gz go-0fae49df57e6b4eaaa5bc497e06df701890f9501.zip |
[release-branch.go1.10] cmd/cgo: stop expanding typedefs once we reach __builtin types
Expanding __builtin types (__builtin_va_list, particularly) leads
to problems because they are expanded by the compiler itself - the
expansions are not generated by anything in a .h file. The types
a __builtin type expand to are thus very confusing to cgo.
See CL 126275.
Fixes #25036.
Change-Id: I66eb6a4f27f652f1b934ba702f580f6daa62a566
Reviewed-on: https://go-review.googlesource.com/127156
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-on: https://go-review.googlesource.com/128096
-rw-r--r-- | src/cmd/cgo/gcc.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index ef926ee8c1..765fa87447 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -627,6 +627,10 @@ func (p *Package) recordTypedefs1(dtype dwarf.Type, visited map[dwarf.Type]bool) visited[dtype] = true switch dt := dtype.(type) { case *dwarf.TypedefType: + if strings.HasPrefix(dt.Name, "__builtin") { + // Don't look inside builtin types. There be dragons. + return + } if !p.typedefs[dt.Name] { p.typedefs[dt.Name] = true p.typedefList = append(p.typedefList, dt.Name) |