mirror of
https://github.com/golang/go
synced 2024-11-25 06:47:56 -07:00
cmd/gc: fix inlining bug with receive operator.
The receive operator was given incorrect precedence resulting in incorrect deletion of parentheses. Fixes #3843. R=rsc CC=golang-dev, remy https://golang.org/cl/6442049
This commit is contained in:
parent
cbc3268d1d
commit
b6ea905ed9
@ -964,7 +964,6 @@ static int opprec[] = {
|
|||||||
[OPAREN] = 8,
|
[OPAREN] = 8,
|
||||||
[OPRINTN] = 8,
|
[OPRINTN] = 8,
|
||||||
[OPRINT] = 8,
|
[OPRINT] = 8,
|
||||||
[ORECV] = 8,
|
|
||||||
[ORUNESTR] = 8,
|
[ORUNESTR] = 8,
|
||||||
[OSTRARRAYBYTE] = 8,
|
[OSTRARRAYBYTE] = 8,
|
||||||
[OSTRARRAYRUNE] = 8,
|
[OSTRARRAYRUNE] = 8,
|
||||||
@ -996,6 +995,7 @@ static int opprec[] = {
|
|||||||
[OMINUS] = 7,
|
[OMINUS] = 7,
|
||||||
[OADDR] = 7,
|
[OADDR] = 7,
|
||||||
[OIND] = 7,
|
[OIND] = 7,
|
||||||
|
[ORECV] = 7,
|
||||||
|
|
||||||
[OMUL] = 6,
|
[OMUL] = 6,
|
||||||
[ODIV] = 6,
|
[ODIV] = 6,
|
||||||
|
11
test/fixedbugs/bug448.dir/pkg1.go
Normal file
11
test/fixedbugs/bug448.dir/pkg1.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2012 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.
|
||||||
|
|
||||||
|
package pkg1
|
||||||
|
|
||||||
|
var x = make(chan interface{})
|
||||||
|
|
||||||
|
func Do() int {
|
||||||
|
return (<-x).(int)
|
||||||
|
}
|
14
test/fixedbugs/bug448.dir/pkg2.go
Normal file
14
test/fixedbugs/bug448.dir/pkg2.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Copyright 2012 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 3843: inlining bug due to wrong receive operator precedence.
|
||||||
|
|
||||||
|
package pkg2
|
||||||
|
|
||||||
|
import "./pkg1"
|
||||||
|
|
||||||
|
func F() {
|
||||||
|
pkg1.Do()
|
||||||
|
}
|
||||||
|
|
7
test/fixedbugs/bug448.go
Normal file
7
test/fixedbugs/bug448.go
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// compiledir
|
||||||
|
|
||||||
|
// Copyright 2012 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.
|
||||||
|
|
||||||
|
package ignored
|
Loading…
Reference in New Issue
Block a user