• Russ Cox's avatar
    cmd/cgo: fix handling of array of pointers when using clang · 6be1cb8c
    Russ Cox authored
    Clang does not record the "size" field for pointer types,
    so we must insert the size ourselves. We were already
    doing this, but only for the case of pointer types.
    For an array of pointer types, the setting of the size for
    the nested pointer type was happening after the computation
    of the size of the array type, meaning that the array type
    was always computed as 0 bytes. Delay the size computation.
    
    This bug happens on all Clang systems, not just FreeBSD.
    Our test checked that cgo wrote something, not that it was correct.
    FreeBSD's default clang rejects array[0] as a C struct field,
    so it noticed the incorrect sizes. But the sizes were incorrect
    everywhere.
    
    Update testcdefs to check the output has the right semantics.
    
    Fixes #6292.
    
    R=golang-dev, iant
    CC=golang-dev
    https://golang.org/cl/22840043
    6be1cb8c
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...