re PR go/68496 ([libgo] reflect test fails on Linux x86-64)
PR go/68496 reflect: Allocate space for FFI functions returning a zero-sized type. The libffi library does not understand zero-sized types. We represent them as a struct with a single field of type void. If such a type is returned from a function, libffi will copy 1 byte of data. Allocate space for that byte, although we won't use it. Fixes https://gcc.gnu.org/PR68496. Reviewed-on: https://go-review.googlesource.com/17175 From-SVN: r230776
This commit is contained in:
parent
cbd03aee24
commit
8c61286797
@ -1,4 +1,4 @@
|
||||
97ec885c715b3922b0866c081554899b8d50933a
|
||||
0d979f0b860cfd879754150e0ae5e1018b94d7c4
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
@ -81,6 +81,12 @@ go_results_size (const struct __go_func_type *func)
|
||||
|
||||
off = (off + maxalign - 1) & ~ (maxalign - 1);
|
||||
|
||||
// The libffi library doesn't understand a struct with no fields.
|
||||
// We generate a struct with a single field of type void. When used
|
||||
// as a return value, libffi will think that requires a byte.
|
||||
if (off == 0)
|
||||
off = 1;
|
||||
|
||||
return off;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user