summaryrefslogtreecommitdiff
path: root/misc/cgo
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2014-06-05 10:42:03 -0700
committerIan Lance Taylor <iant@golang.org>2014-06-05 10:42:03 -0700
commitfa055adf81fea4e70d39535f1298424482790fb6 (patch)
treeba627075ebab9a0f07e80beda2438b0de9c51d59 /misc/cgo
parent99f44e32937a273412a074e3825a09fa2ab1800f (diff)
downloadgo-fa055adf81fea4e70d39535f1298424482790fb6.tar.gz
cmd/cgo: for typedef of untagged struct, use typedef name in C code
Fixes issue 8148. LGTM=cookieo9, rsc R=rsc, cookieo9 CC=golang-codereviews https://codereview.appspot.com/103080043
Diffstat (limited to 'misc/cgo')
-rw-r--r--misc/cgo/test/issue8148.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/misc/cgo/test/issue8148.go b/misc/cgo/test/issue8148.go
new file mode 100644
index 000000000..8e4190848
--- /dev/null
+++ b/misc/cgo/test/issue8148.go
@@ -0,0 +1,31 @@
+// Copyright 2014 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 8148. A typedef of an unnamed struct didn't work when used
+// with an exported Go function. No runtime test; just make sure it
+// compiles.
+
+package cgotest
+
+/*
+typedef struct { int i; } T;
+
+int issue8148Callback(T*);
+
+static int get() {
+ T t;
+ t.i = 42;
+ return issue8148Callback(&t);
+}
+*/
+import "C"
+
+//export issue8148Callback
+func issue8148Callback(t *C.T) C.int {
+ return t.i
+}
+
+func Issue8148() int {
+ return int(C.get())
+}