Fixes #20333
Change-Id: I0653cc859076f146d8ea8f5bd55cb22b0b8d987f
Reviewed-on: https://go-review.googlesource.com/43290
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
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
}
--- /dev/null
+// 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"})
+}