runtime: Delete from a nil map is now a no-op.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Dec 2012 23:29:10 +0000 (23:29 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Dec 2012 23:29:10 +0000 (23:29 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194462 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/go.test/test/nil.go
libgo/runtime/go-map-delete.c

index 9f7bcbb..aa558fa 100644 (file)
@@ -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
index b25760f..f8f8907 100644 (file)
@@ -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;