summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2011-04-15 16:16:20 -0400
committerRuss Cox <rsc@golang.org>2011-04-15 16:16:20 -0400
commit32d12d312dec9c049e27aa5e044ae89d934ac48b (patch)
tree4b5e6f3785abf3d4b08ad1d10fe63ddae7c372b1
parente06bf37d1766ecaad040c431abae5b4747147af9 (diff)
downloadgo-32d12d312dec9c049e27aa5e044ae89d934ac48b.tar.gz
gc: print of unsafe.Pointer
Got lost when I introduced TUNSAFEPTR. R=ken2 CC=golang-dev http://codereview.appspot.com/4442046
-rw-r--r--src/cmd/gc/walk.c2
-rw-r--r--test/fixedbugs/bug328.go14
-rw-r--r--test/golden.out3
3 files changed, 18 insertions, 1 deletions
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c
index f5a72d891..6b94002c5 100644
--- a/src/cmd/gc/walk.c
+++ b/src/cmd/gc/walk.c
@@ -1785,7 +1785,7 @@ walkprint(Node *nn, NodeList **init, int defer)
on = syslook("printiface", 1);
argtype(on, n->type); // any-1
}
- } else if(isptr[et] || et == TCHAN || et == TMAP || et == TFUNC) {
+ } else if(isptr[et] || et == TCHAN || et == TMAP || et == TFUNC || et == TUNSAFEPTR) {
if(defer) {
fmtprint(&fmt, "%%p");
} else {
diff --git a/test/fixedbugs/bug328.go b/test/fixedbugs/bug328.go
new file mode 100644
index 000000000..64041f412
--- /dev/null
+++ b/test/fixedbugs/bug328.go
@@ -0,0 +1,14 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 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 main
+
+import "unsafe"
+
+func main() {
+ var p unsafe.Pointer
+ println(p)
+}
diff --git a/test/golden.out b/test/golden.out
index f76db3e50..bbe399f28 100644
--- a/test/golden.out
+++ b/test/golden.out
@@ -157,6 +157,9 @@ panic: interface conversion: interface is int, not int32
panic: interface conversion: interface is main.T, not main.T
+=========== fixedbugs/bug328.go
+0x0
+
== bugs/
=========== bugs/bug322.go