aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2018-07-31 21:31:19 -0700
committerIan Lance Taylor <iant@golang.org>2018-08-08 00:28:44 +0000
commit0fae49df57e6b4eaaa5bc497e06df701890f9501 (patch)
treef4851767124be05994a632d4294895209f1200cf
parent0f1c9decc99e501fcc5134dba4d5a53ce0fd830d (diff)
downloadgo-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.go4
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)