diff options
author | Ian Lance Taylor <iant@golang.org> | 2018-02-06 15:11:59 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2018-02-07 01:20:30 +0000 |
commit | c07095cd287e2e0a5d7deadabb1c371be4a542f7 (patch) | |
tree | 384b9dcf2045f9dc2cbefeddf48f6c4226b7fb14 | |
parent | 23e8e197b0cd40312d96dd7576a44796f65dfb50 (diff) | |
download | go-c07095cd287e2e0a5d7deadabb1c371be4a542f7.tar.gz go-c07095cd287e2e0a5d7deadabb1c371be4a542f7.zip |
cmd/cgo: revert CL 49490 "fix for function taking pointer typedef"
CL 49490 fixed a warning when compiling the C code generated by cgo,
but it introduced typedef conflicts in Go code that cgo is supposed to
avoid.
Original CL description:
cmd/cgo: fix for function taking pointer typedef
Fixes #19832
Updates #19832
Fixes #23720
Change-Id: I22a732db31be0b4f7248c105277ab8ee44ef6cfb
Reviewed-on: https://go-review.googlesource.com/92455
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
-rw-r--r-- | misc/cgo/test/issue19832.go | 16 | ||||
-rw-r--r-- | src/cmd/cgo/gcc.go | 6 |
2 files changed, 0 insertions, 22 deletions
diff --git a/misc/cgo/test/issue19832.go b/misc/cgo/test/issue19832.go deleted file mode 100644 index 44587770af..0000000000 --- a/misc/cgo/test/issue19832.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2015 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 19832. Functions taking a pointer typedef were being expanded and triggering a compiler error. - -package cgotest - -// typedef struct { int i; } *PS; -// void T19832(PS p) {} -import "C" -import "testing" - -func test19832(t *testing.T) { - C.T19832(nil) -} diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 4f16fe0e31..2ebe906699 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -2250,12 +2250,6 @@ func (c *typeConv) FuncArg(dtype dwarf.Type, pos token.Pos) *Type { break } - // If we already know the typedef for t just use that. - // See issue 19832. - if def := typedef[t.Go.(*ast.Ident).Name]; def != nil { - break - } - t = c.Type(ptr, pos) if t == nil { return nil |