From 35f33e3802becf1e1d9c5014c0ac8bafe0bdbc77 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 12 Dec 2012 23:29:10 +0000 Subject: [PATCH] runtime: Delete from a nil map is now a no-op. From-SVN: r194462 --- gcc/testsuite/go.test/test/nil.go | 5 ++--- libgo/runtime/go-map-delete.c | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gcc/testsuite/go.test/test/nil.go b/gcc/testsuite/go.test/test/nil.go index 9f7bcbb59fdb..aa558fa3f49c 100644 --- a/gcc/testsuite/go.test/test/nil.go +++ b/gcc/testsuite/go.test/test/nil.go @@ -151,9 +151,8 @@ func maptest() { shouldPanic(func() { m[2] = 3 }) - shouldPanic(func() { - delete(m, 2) - }) + // can delete (non-existent) entries + delete(m, 2) } // nil slice diff --git a/libgo/runtime/go-map-delete.c b/libgo/runtime/go-map-delete.c index b25760fc8204..f8f8907c345b 100644 --- a/libgo/runtime/go-map-delete.c +++ b/libgo/runtime/go-map-delete.c @@ -27,7 +27,7 @@ __go_map_delete (struct __go_map *map, const void *key) void **pentry; if (map == NULL) - runtime_panicstring ("deletion of entry in nil map"); + return; descriptor = map->__descriptor;