diff options
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | gcc/go/gofrontend/types.cc | 8 | ||||
-rw-r--r-- | libgo/go/reflect/type.go | 1 | ||||
-rw-r--r-- | libgo/go/runtime/hashmap.go | 14 | ||||
-rw-r--r-- | libgo/go/runtime/type.go | 1 |
5 files changed, 3 insertions, 23 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 8fc3878e3a2..9495882b5da 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -8deaafd14414bb5cbbdf3e2673f61b6d836d7d2a +da249ffd264154cc992e76ff03f91f700d3bf53e The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 2fb67064471..00098dabef8 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -7975,12 +7975,11 @@ Map_type::make_map_type_descriptor_type() Type* bool_type = Type::lookup_bool_type(); Struct_type* sf = - Type::make_builtin_struct_type(12, + Type::make_builtin_struct_type(11, "", tdt, "key", ptdt, "elem", ptdt, "bucket", ptdt, - "hmap", ptdt, "keysize", uint8_type, "indirectkey", bool_type, "valuesize", uint8_type, @@ -8065,11 +8064,6 @@ Map_type::do_type_descriptor(Gogo* gogo, Named_type* name) vals->push_back(Expression::make_type_descriptor(bucket_type, bloc)); ++p; - go_assert(p->is_field_name("hmap")); - Type* hmap_type = this->hmap_type(bucket_type); - vals->push_back(Expression::make_type_descriptor(hmap_type, bloc)); - - ++p; go_assert(p->is_field_name("keysize")); if (keysize > Map_type::max_key_size) vals->push_back(Expression::make_integer_int64(ptrsize, uint8_type, bloc)); diff --git a/libgo/go/reflect/type.go b/libgo/go/reflect/type.go index 07fe4d001c0..bbbef9107c2 100644 --- a/libgo/go/reflect/type.go +++ b/libgo/go/reflect/type.go @@ -351,7 +351,6 @@ type mapType struct { key *rtype // map key type elem *rtype // map element (value) type bucket *rtype // internal bucket structure - hmap *rtype // internal map header keysize uint8 // size of key slot indirectkey uint8 // store ptr to key instead of key itself valuesize uint8 // size of value slot diff --git a/libgo/go/runtime/hashmap.go b/libgo/go/runtime/hashmap.go index aba9abd7aab..53b05b1ef77 100644 --- a/libgo/go/runtime/hashmap.go +++ b/libgo/go/runtime/hashmap.go @@ -311,20 +311,13 @@ func makemap_small() *hmap { // If h != nil, the map can be created directly in h. // If h.buckets != nil, bucket pointed to can be used as the first bucket. func makemap(t *maptype, hint int, h *hmap) *hmap { - // The size of hmap should be 48 bytes on 64 bit - // and 28 bytes on 32 bit platforms. - if sz := unsafe.Sizeof(hmap{}); sz != 8+5*sys.PtrSize { - println("runtime: sizeof(hmap) =", sz, ", t.hmap.size =", t.hmap.size) - throw("bad hmap size") - } - if hint < 0 || hint > int(maxSliceCap(t.bucket.size)) { hint = 0 } // initialize Hmap if h == nil { - h = (*hmap)(newobject(t.hmap)) + h = new(hmap) } h.hash0 = fastrand() @@ -1210,11 +1203,6 @@ func ismapkey(t *_type) bool { //go:linkname reflect_makemap reflect.makemap func reflect_makemap(t *maptype, cap int) *hmap { - // Check invariants and reflects math. - if sz := unsafe.Sizeof(hmap{}); sz != t.hmap.size { - println("runtime: sizeof(hmap) =", sz, ", t.hmap.size =", t.hmap.size) - throw("bad hmap size") - } if !ismapkey(t.key) { throw("runtime.reflect_makemap: unsupported map key type") } diff --git a/libgo/go/runtime/type.go b/libgo/go/runtime/type.go index 0ec0da41179..3c08f7e1b9d 100644 --- a/libgo/go/runtime/type.go +++ b/libgo/go/runtime/type.go @@ -72,7 +72,6 @@ type maptype struct { key *_type elem *_type bucket *_type // internal type representing a hash bucket - hmap *_type // internal type representing a hmap keysize uint8 // size of key slot indirectkey bool // store ptr to key instead of key itself valuesize uint8 // size of value slot |