aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gerrand <adg@golang.org>2013-07-22 18:22:30 +1000
committerAndrew Gerrand <adg@golang.org>2013-07-22 18:22:30 +1000
commit6baa8dba68f7611b62c4e4c3813518c0584b3fab (patch)
tree4fc76a74af39f319e8827bf9f7c7ea438bacd6e5
parentd260448f6b6ac10efe4ae7f6dfe944e72bc2a676 (diff)
downloadgo-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.c2
-rw-r--r--test/fixedbugs/bug465.dir/a.go15
-rw-r--r--test/fixedbugs/bug465.dir/b.go2
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")
}