OSDN Git Service

Fix channels with element type of size zero.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Sep 2011 00:56:28 +0000 (00:56 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Sep 2011 00:56:28 +0000 (00:56 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179030 138bc75d-0d04-0410-961f-82ee72b054a4

libgo/runtime/go-new-channel.c

index 0c6f391..2f5bf2e 100644 (file)
@@ -33,7 +33,7 @@ __go_new_channel (const struct __go_type_descriptor *channel_type,
   ientries = (int) entries;
   if (ientries < 0
       || (uintptr_t) ientries != entries
-      || entries > (uintptr_t) -1 / element_size)
+      || (element_size > 0 && entries > (uintptr_t) -1 / element_size))
     __go_panic_msg ("chan size out of range");
 
   alloc_size = (element_size + sizeof (uint64_t) - 1) / sizeof (uint64_t);