diff options
author | Andrew Gerrand <adg@golang.org> | 2013-07-22 18:22:30 +1000 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2013-07-22 18:22:30 +1000 |
commit | 6baa8dba68f7611b62c4e4c3813518c0584b3fab (patch) | |
tree | 4fc76a74af39f319e8827bf9f7c7ea438bacd6e5 | |
parent | d260448f6b6ac10efe4ae7f6dfe944e72bc2a676 (diff) | |
download | go-6baa8dba68f7611b62c4e4c3813518c0584b3fab.tar.gz go-6baa8dba68f7611b62c4e4c3813518c0584b3fab.zip |
[release-branch.go1.1] cmd/gc: fix pointer composite literals in exported if statements.
««« CL 10470043 / d04e6b0bcacf
cmd/gc: fix pointer composite literals in exported if statements.
Fixes #4230 (again).
R=rsc, golang-dev, r
CC=golang-dev
https://golang.org/cl/10470043
»»»
Update #5928
R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/11455045
-rw-r--r-- | src/cmd/gc/fmt.c | 2 | ||||
-rw-r--r-- | test/fixedbugs/bug465.dir/a.go | 15 | ||||
-rw-r--r-- | test/fixedbugs/bug465.dir/b.go | 2 |
3 files changed, 17 insertions, 2 deletions
diff --git a/src/cmd/gc/fmt.c b/src/cmd/gc/fmt.c index 35f01a5c26..b5f6a9b8f9 100644 --- a/src/cmd/gc/fmt.c +++ b/src/cmd/gc/fmt.c @@ -1218,7 +1218,7 @@ exprfmt(Fmt *f, Node *n, int prec) } if(fmtmode == FExp && ptrlit) // typecheck has overwritten OIND by OTYPE with pointer type. - return fmtprint(f, "&%T{ %,H }", n->right->type->type, n->list); + return fmtprint(f, "(&%T{ %,H })", n->right->type->type, n->list); return fmtprint(f, "(%N{ %,H })", n->right, n->list); case OPTRLIT: diff --git a/test/fixedbugs/bug465.dir/a.go b/test/fixedbugs/bug465.dir/a.go index c5d410de47..a9a8614bb3 100644 --- a/test/fixedbugs/bug465.dir/a.go +++ b/test/fixedbugs/bug465.dir/a.go @@ -59,3 +59,18 @@ func F7() int { } return 0 } + +func F8() int { + if a := (&T{1, 1}); a != nil { + return 1 + } + return 0 +} + +func F9() int { + var a *T + if a = (&T{1, 1}); a != nil { + return 1 + } + return 0 +} diff --git a/test/fixedbugs/bug465.dir/b.go b/test/fixedbugs/bug465.dir/b.go index 0f4909f4db..c84c6836d6 100644 --- a/test/fixedbugs/bug465.dir/b.go +++ b/test/fixedbugs/bug465.dir/b.go @@ -9,7 +9,7 @@ import "./a" func main() { for _, f := range []func() int{ a.F1, a.F2, a.F3, a.F4, - a.F5, a.F6, a.F7} { + a.F5, a.F6, a.F7, a.F8, a.F9} { if f() > 1 { panic("f() > 1") } |