mirror of
https://github.com/golang/go
synced 2024-11-26 14:46:47 -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:
parent
8f36668178
commit
dccc653aeb
@ -498,7 +498,12 @@ OpSwitch:
|
|||||||
ok |= Etype
|
ok |= Etype
|
||||||
n.Op = OTYPE
|
n.Op = OTYPE
|
||||||
n.Type = types.NewPtr(l.Type)
|
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
|
n.Left = nil
|
||||||
break OpSwitch
|
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 New Issue
Block a user