]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.11] cmd/cgo: preserve type information across loadDWARF loop
authorIan Lance Taylor <iant@golang.org>
Wed, 5 Dec 2018 22:04:27 +0000 (14:04 -0800)
committerFilippo Valsorda <filippo@golang.org>
Fri, 14 Dec 2018 19:40:45 +0000 (19:40 +0000)
commit928a4b69195f1f408e4cdb6ad4ee41f5f91f4e86
tree4c62bf70612d80d92658b0e823c9920a556df0f6
parenta1d388ebf217d5582c24057cec4ccd053239dfc9
[release-branch.go1.11] cmd/cgo: preserve type information across loadDWARF loop

CL 122575 and its successors introduced a loop calling loadDWARF,
whereas before we only called it once. Pass a single typeConv to each
call, rather than creating a new one in loadDWARF itself. Change the
maps from dwarf.Type to use string keys rather than dwarf.Type keys,
since when the DWARF is reloaded the dwarf.Type pointers will be
different. These changes permit typeConv.Type to return a consistent
value for a given DWARF type, avoiding spurious type conversion errors
due to typedefs loaded after the first loop iteration.

Updates #27340
Fixes #27395

Change-Id: Ic33467bbfca4c54e95909621b35ba2a58216d96e
Reviewed-on: https://go-review.googlesource.com/c/152762
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
(cherry picked from commit 6d4358705301e06e71b99977b77ae2c0a6b16b86)
Reviewed-on: https://go-review.googlesource.com/c/154277
Run-TryBot: Filippo Valsorda <filippo@golang.org>
misc/cgo/test/issue27340.go [new file with mode: 0644]
misc/cgo/test/issue27340/a.go [new file with mode: 0644]
misc/cgo/test/issue9026/issue9026.go
src/cmd/cgo/gcc.go