From: Ian Lance Taylor Date: Sat, 13 Dec 2014 01:58:46 +0000 (+0000) Subject: re PR go/61258 (gccgo: assertion failure go-map-delete.c:37 [GoSmith]) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9ac18f8c2abf0ad2f43a7eb73f6032a0ca518436;p=gcc.git re PR go/61258 (gccgo: assertion failure go-map-delete.c:37 [GoSmith]) PR go/61258 runtime: Don't crash when deleting zero-sized key. From-SVN: r218702 --- diff --git a/libgo/runtime/go-map-delete.c b/libgo/runtime/go-map-delete.c index de8b0469dea..aff25d104bf 100644 --- a/libgo/runtime/go-map-delete.c +++ b/libgo/runtime/go-map-delete.c @@ -35,7 +35,10 @@ __go_map_delete (struct __go_map *map, const void *key) key_descriptor = descriptor->__map_descriptor->__key_type; key_offset = descriptor->__key_offset; key_size = key_descriptor->__size; - __go_assert (key_size != 0 && key_size != -1UL); + if (key_size == 0) + return; + + __go_assert (key_size != -1UL); equalfn = key_descriptor->__equalfn; key_hash = key_descriptor->__hashfn (key, key_size);