From: Ian Lance Taylor Date: Fri, 20 Nov 2015 22:48:47 +0000 (+0000) Subject: re PR go/68072 (malformed DWARF TagVariable entry) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4944c7791b76f813aaf33da27c92df8704adec06;p=gcc.git re PR go/68072 (malformed DWARF TagVariable entry) PR go/68072 cmd/cgo: ignore vars with no name or type if they have a AttrSpecification Backport of master CL https://golang.org/cl/17151. Fixes https://gcc.gnu.org/PR/68072. Reviewed-on: https://go-review.googlesource.com/17152 From-SVN: r230685 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 418f37a1542..186385433d9 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -d52835c9376985f92f35c32af5f1808239981536 +128d5b14b8ab967cb61c01a9b2c596bda7d04c63 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/cmd/cgo/gcc.go b/libgo/go/cmd/cgo/gcc.go index b64849a8d16..e0b89ec14cb 100644 --- a/libgo/go/cmd/cgo/gcc.go +++ b/libgo/go/cmd/cgo/gcc.go @@ -490,6 +490,11 @@ func (p *Package) loadDWARF(f *File, names []*Name) { name, _ := e.Val(dwarf.AttrName).(string) typOff, _ := e.Val(dwarf.AttrType).(dwarf.Offset) if name == "" || typOff == 0 { + if e.Val(dwarf.AttrSpecification) != nil { + // Since we are reading all the DWARF, + // assume we will see the variable elsewhere. + break + } fatalf("malformed DWARF TagVariable entry") } if !strings.HasPrefix(name, "__cgo__") {