1
0
mirror of https://github.com/golang/go synced 2024-11-12 10:20:27 -07:00
go/test/fixedbugs/issue13261.go
Robert Griesemer 5500d46914 cmd/compile/internal/gc: fix incorrect parsing of &(T{}) when followed by {
Handling of &(T{}) assumed that the parser would not introduce ()'s.

Also: Better comments around handling of OPAREN syntax tree optimization.

Fixes #13261.

Change-Id: Ifc5047a0448f5e7d74cd42f6608b87dcc9c2f2fb
Reviewed-on: https://go-review.googlesource.com/17040
Reviewed-by: Chris Manghane <cmang@golang.org>
2015-11-18 22:25:48 +00:00

30 lines
521 B
Go

// compile
// Copyright 2015 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.
// Taking the address of a parenthesized composite literal is permitted.
package main
type T struct{}
func main() {
_ = &T{}
_ = &(T{})
_ = &((T{}))
_ = &struct{}{}
_ = &(struct{}{})
_ = &((struct{}{}))
switch (&T{}) {}
switch &(T{}) {}
switch &((T{})) {}
switch &struct{}{} {}
switch &(struct{}{}) {}
switch &((struct{}{})) {}
}