From 5be0c6ab4d892d245c7b710d2e37adc462744ba4 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Wed, 27 Aug 2014 20:15:05 -0400 Subject: cmd/{ld,link,objdump}, runtime, debug/gosym: move linker-defined symbols into runtime package Fixes issue 8092. LGTM=rsc R=iant, rsc CC=golang-codereviews https://codereview.appspot.com/126790043 Committer: Russ Cox --- misc/cgo/test/cgo_test.go | 1 + misc/cgo/test/issue8092.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 misc/cgo/test/issue8092.go (limited to 'misc') diff --git a/misc/cgo/test/cgo_test.go b/misc/cgo/test/cgo_test.go index 3c6d5cb59..3cc83060f 100644 --- a/misc/cgo/test/cgo_test.go +++ b/misc/cgo/test/cgo_test.go @@ -54,5 +54,6 @@ func Test7665(t *testing.T) { test7665(t) } func TestNaming(t *testing.T) { testNaming(t) } func Test7560(t *testing.T) { test7560(t) } func Test5242(t *testing.T) { test5242(t) } +func Test8092(t *testing.T) { test8092(t) } func BenchmarkCgoCall(b *testing.B) { benchCgoCall(b) } diff --git a/misc/cgo/test/issue8092.go b/misc/cgo/test/issue8092.go new file mode 100644 index 000000000..8a14ce6d7 --- /dev/null +++ b/misc/cgo/test/issue8092.go @@ -0,0 +1,36 @@ +// 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 8092. Test that linker defined symbols (e.g., text, data) don't +// conflict with C symbols. + +package cgotest + +/* +char text[] = "text"; +char data[] = "data"; +char *ctext(void) { return text; } +char *cdata(void) { return data; } +*/ +import "C" + +import "testing" + +func test8092(t *testing.T) { + tests := []struct { + s string + a, b *C.char + }{ + {"text", &C.text[0], C.ctext()}, + {"data", &C.data[0], C.cdata()}, + } + for _, test := range tests { + if test.a != test.b { + t.Errorf("%s: pointer mismatch: %v != %v", test.s, test.a, test.b) + } + if got := C.GoString(test.a); got != test.s { + t.Errorf("%s: points at %#v, want %#v", test.s, got, test.s) + } + } +} -- cgit v1.2.1