diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-02-04 01:41:24 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-02-04 01:41:24 +0000 |
commit | 46311016894d30b5898382f1f5bada88fb00a34d (patch) | |
tree | 5f1c68fe8bf58b8564c9fcffd911fd3b50a73d9c /gcc/go | |
parent | 5007a7a898c918a75101461fe40897970d4dc9c0 (diff) | |
download | gcc-46311016894d30b5898382f1f5bada88fb00a34d.zip gcc-46311016894d30b5898382f1f5bada88fb00a34d.tar.gz gcc-46311016894d30b5898382f1f5bada88fb00a34d.tar.bz2 |
compiler, reflect: Fix hash codes of named types, fix PtrTo hash.
From-SVN: r183889
Diffstat (limited to 'gcc/go')
-rw-r--r-- | gcc/go/gofrontend/types.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 0bbe3c5..41bf491 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -1658,7 +1658,12 @@ Type::type_descriptor_constructor(Gogo* gogo, int runtime_type_kind, ++p; go_assert(p->is_field_name("hash")); - mpz_set_ui(iv, this->hash_for_method(gogo)); + unsigned int h; + if (name != NULL) + h = name->hash_for_method(gogo); + else + h = this->hash_for_method(gogo); + mpz_set_ui(iv, h); vals->push_back(Expression::make_integer(&iv, p->type(), bloc)); ++p; |