diff options
author | Matthew Dempsky <mdempsky@google.com> | 2014-08-05 18:16:56 -0700 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2014-08-05 18:16:56 -0700 |
commit | 9273a938fa61bceffa2a2d3005f418955ea3a393 (patch) | |
tree | 4cd36e0fea4c17396864801db24d725401b7b607 /misc | |
parent | 4066aff8b63ca59b8866c482872c14a2087ae8b4 (diff) | |
download | go-9273a938fa61bceffa2a2d3005f418955ea3a393.tar.gz |
cmd/cgo: fix recursive type mapping
Instead of immediately completing pointer type mappings, add them to
a queue to allow them to be completed later. This fixes issues caused
by Type() returning arbitrary in-progress type mappings.
Fixes issue 8368.
Fixes issue 8441.
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://codereview.appspot.com/122850043
Committer: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'misc')
-rw-r--r-- | misc/cgo/test/issue8441.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/misc/cgo/test/issue8441.go b/misc/cgo/test/issue8441.go new file mode 100644 index 000000000..2d871f083 --- /dev/null +++ b/misc/cgo/test/issue8441.go @@ -0,0 +1,27 @@ +// 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 8368 and 8441. Recursive struct definitions didn't work. +// No runtime test; just make sure it compiles. + +package cgotest + +/* +typedef struct one one; +typedef struct two two; +struct one { + two *x; +}; +struct two { + one *x; +}; +*/ +import "C" + +func issue8368(one *C.struct_one, two *C.struct_two) { +} + +func issue8441(one *C.one, two *C.two) { + issue8441(two.x, one.x) +} |