diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-12-22 23:05:02 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-12-22 23:05:02 +0000 |
commit | 28171b9d5dff2ee4fa0675ff36f5c55131ae158f (patch) | |
tree | d89a2a32fc4fe6b2ca04d0ad5487f72a348c05bb /gcc/tree.h | |
parent | cb66382056ed3d00383bed84db0df5b074f8265a (diff) | |
download | gcc-28171b9d5dff2ee4fa0675ff36f5c55131ae158f.zip gcc-28171b9d5dff2ee4fa0675ff36f5c55131ae158f.tar.gz gcc-28171b9d5dff2ee4fa0675ff36f5c55131ae158f.tar.bz2 |
compiler: fix spurious redefinition error for anon struct
Change Struct_type::do_mangled_name to incorporate the field
names even for hidden symbols. This is needed in cases where
a package imports a type "S" that has an anonymous struct, e.g.
// imported from some other package
type S struct {
X struct{ _ struct{} }
}
and then defines a local type that uses a structurally identical
anonymous struct, e.g.
// defined locally
type T struct {
U struct{ _ struct{} }
}
In the case above both types triggered the creation of hash/equal
methods, but the method names were clashing (since both structs
had the same mangled name).
Fixes golang/go#18414
Reviewed-on: https://go-review.googlesource.com/34621
From-SVN: r243899
Diffstat (limited to 'gcc/tree.h')
0 files changed, 0 insertions, 0 deletions