Commit 95323c59 authored by Nigel Tao's avatar Nigel Tao

runtime: fix panic for make(chan [0]byte).

I suspect that this was introduced by
http://code.google.com/p/go/source/detail?r=6e4ee32fffd1

R=r
CC=golang-dev
https://golang.org/cl/4764045
parent a8e0035b
...@@ -97,7 +97,7 @@ runtime·makechan_c(Type *elem, int64 hint) ...@@ -97,7 +97,7 @@ runtime·makechan_c(Type *elem, int64 hint)
int32 n; int32 n;
byte *by; byte *by;
if(hint < 0 || (int32)hint != hint || hint > ((uintptr)-1) / elem->size) if(hint < 0 || (int32)hint != hint || (elem->size > 0 && hint > ((uintptr)-1) / elem->size))
runtime·panicstring("makechan: size out of range"); runtime·panicstring("makechan: size out of range");
if(elem->alg >= nelem(runtime·algarray)) { if(elem->alg >= nelem(runtime·algarray)) {
......
// $G $D/$F.go && $L $F.$A && ./$A.out
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Making channels of a zero-sized type should not panic.
package main
func main() {
_ = make(chan [0]byte)
_ = make(chan [0]byte, 1)
_ = make(chan struct{})
_ = make(chan struct{}, 1)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment