OSDN Git Service

Fix calling make with slice whose element type is size zero.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Sep 2011 22:06:20 +0000 (22:06 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Sep 2011 22:06:20 +0000 (22:06 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179019 138bc75d-0d04-0410-961f-82ee72b054a4

libgo/runtime/go-make-slice.c

index cd2d55b..d0e8369 100644 (file)
@@ -35,7 +35,8 @@ __go_make_slice2 (const struct __go_type_descriptor *td, uintptr_t len,
   icap = (int) cap;
   if (cap < len
       || (uintptr_t) icap != cap
-      || cap > (uintptr_t) -1U / std->__element_type->__size)
+      || (std->__element_type->__size > 0
+         && cap > (uintptr_t) -1U / std->__element_type->__size))
     __go_panic_msg ("makeslice: cap out of range");
 
   ret.__count = ilen;