mirror of
https://github.com/golang/go
synced 2024-09-04 23:44:16 +00: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:
parent
8f36668178
commit
dccc653aeb
|
@ -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
|
||||
}
|
||||
|
|
15
test/fixedbugs/issue20333.go
Normal file
15
test/fixedbugs/issue20333.go
Normal 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"})
|
||||
}
|
Loading…
Reference in a new issue