summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/go/gofrontend/types.cc8
-rw-r--r--libgo/go/reflect/type.go1
-rw-r--r--libgo/go/runtime/hashmap.go14
-rw-r--r--libgo/go/runtime/type.go1
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