mirror of
https://github.com/golang/go
synced 2024-09-06 00:19:45 +00:00
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>
This commit is contained in:
parent
23e8e197b0
commit
c07095cd28
|
@ -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)
|
|
||||||
}
|
|
|
@ -2250,12 +2250,6 @@ func (c *typeConv) FuncArg(dtype dwarf.Type, pos token.Pos) *Type {
|
||||||
break
|
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)
|
t = c.Type(ptr, pos)
|
||||||
if t == nil {
|
if t == nil {
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in a new issue