1
0
mirror of https://github.com/golang/go synced 2024-11-22 21:50:03 -07:00

cmd/compile: avoid checkwidth of [...] arrays

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>
This commit is contained in:
Josh Bleecher Snyder 2017-05-11 11:09:45 -07:00
parent 8f36668178
commit dccc653aeb
2 changed files with 21 additions and 1 deletions

View File

@ -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
}

View File

@ -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"})
}