• Ian Lance Taylor's avatar
    cmd/cgo: only record typedef name for pointer to struct · 689947d5
    Ian Lance Taylor authored
    In a function argument, we handle a typedef for a pointer specially,
    using the pointer type rather than the typedef, to permit the Go calls
    to match the laxer type conversions permitted in C. We record the
    typedef so that we use that type in the C code, in case it has a special
    attribute. However, using the typedef is wrong when using a pointer to a
    basic type, because the C code may sometimes use the typedef and
    sometimes not, and using the typedef in all cases will cause incorrect
    type errors on the Go side. Fortunately we only really need to use the
    typedef when pointing to a struct/union/class, and in such a case
    confusion is unlikely.
    
    Fixes #17723.
    
    Change-Id: Id2eaeb156faeaf2e8eb9cf0b8f95b44caf8cfbd2
    Reviewed-on: https://go-review.googlesource.com/32536
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
    689947d5
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...