Commit dccc653a authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

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: default avatarJoe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 8f366681
...@@ -498,7 +498,12 @@ OpSwitch: ...@@ -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
} }
......
// 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"})
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment