• 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
api.go 740 Bytes