From: Josh Bleecher Snyder Date: Thu, 11 May 2017 18:09:45 +0000 (-0700) Subject: cmd/compile: avoid checkwidth of [...] arrays X-Git-Tag: go1.9beta1~275 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=dccc653aeb35d511691191517c021c2ce6125cb4;p=gostls13.git cmd/compile: avoid checkwidth of [...] arrays Fixes #20333 Change-Id: I0653cc859076f146d8ea8f5bd55cb22b0b8d987f Reviewed-on: https://go-review.googlesource.com/43290 Run-TryBot: Josh Bleecher Snyder Reviewed-by: Joe Tsai TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/typecheck.go b/src/cmd/compile/internal/gc/typecheck.go index 6f544a5b9a..5e92e926e3 100644 --- a/src/cmd/compile/internal/gc/typecheck.go +++ b/src/cmd/compile/internal/gc/typecheck.go @@ -498,7 +498,12 @@ OpSwitch: ok |= Etype n.Op = OTYPE n.Type = types.NewPtr(l.Type) - checkwidth(l.Type) // ensure this gets dowidth'd for the backend + // Ensure l.Type gets dowidth'd for the backend. Issue 20174. + // Don't checkwidth [...] arrays, though, since they + // will be replaced by concrete-sized arrays. Issue 20333. + if !l.Type.IsDDDArray() { + checkwidth(l.Type) + } n.Left = nil break OpSwitch } diff --git a/test/fixedbugs/issue20333.go b/test/fixedbugs/issue20333.go new file mode 100644 index 0000000000..8202ab3e22 --- /dev/null +++ b/test/fixedbugs/issue20333.go @@ -0,0 +1,15 @@ +// compile + +// Copyright 2017 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. + +// Issue 20333: early checkwidth of [...] arrays led to compilation errors. + +package main + +import "fmt" + +func main() { + fmt.Println(&[...]string{"abc", "def", "ghi"}) +}