This trivial patch to the Go library fixes using channels with element
types of size zero.  Bootstrapped and ran Go testsuite on
x86_64-unknown-linux-gnu.  Committed to mainline.

Ian

diff -r f87ff36963ee libgo/runtime/go-new-channel.c
--- a/libgo/runtime/go-new-channel.c	Tue Sep 20 17:10:50 2011 -0700
+++ b/libgo/runtime/go-new-channel.c	Tue Sep 20 17:11:39 2011 -0700
@@ -33,7 +33,7 @@
   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);

Reply via email to