mirror of
https://github.com/golang/go
synced 2024-11-18 12:24:48 -07:00
a265c2c448
CL 181857 broke the translation of certain C types using cmd/cgo -godefs because it stores each typedef, array and qualified type with their parent type name in the translation cache. Fix this by only considering the parent type for typedefs of anonymous structs which is the only case where types might become ambiguous. Updates #31891 Fixes #37479 Fixes #37621 Change-Id: I301a749ec89585789cb0d213593bb8b7341beb88 Reviewed-on: https://go-review.googlesource.com/c/go/+/226341 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
34 lines
378 B
Go
34 lines
378 B
Go
// Copyright 2020 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.
|
|
//
|
|
// +build ignore
|
|
|
|
package main
|
|
|
|
/*
|
|
typedef struct A A;
|
|
|
|
typedef struct {
|
|
struct A *next;
|
|
struct A **prev;
|
|
} N;
|
|
|
|
struct A
|
|
{
|
|
N n;
|
|
};
|
|
|
|
typedef struct B
|
|
{
|
|
A* a;
|
|
} B;
|
|
*/
|
|
import "C"
|
|
|
|
type N C.N
|
|
|
|
type A C.A
|
|
|
|
type B C.B
|