diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-05-10 19:41:27 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-05-10 19:41:27 -0700 |
commit | 7a027d8127514c143b25f58666c1df9bff46517a (patch) | |
tree | 64feebd3eda719e63460bf872ee0032bf26f6f57 /stream.c | |
parent | 266653039eb5a6da5cc69ed72bd8792bf8befeca (diff) | |
download | txr-7a027d8127514c143b25f58666c1df9bff46517a.tar.gz txr-7a027d8127514c143b25f58666c1df9bff46517a.tar.bz2 txr-7a027d8127514c143b25f58666c1df9bff46517a.zip |
ffi: fix broken on RISC-V.
* ffi.c (pad_retval): Remove the special case of zero mapping
to zero, which occurs when the return type is void. It's not
clear whether this is correct at all, on any platform. It
hasn't showed up as a problem until now, but on RISC-V,
we have hit a situation in which ffi_call writes a value into
that zero-byte space for the void return value, causing that
to overwrite values[0]: the first element of the argument
array. For reasons not understood, this happens in the qsort
test cases in which which the callback function performs a
block return. It is strange because the block return is
handled entirely in the closure dispatching function.
Diffstat (limited to 'stream.c')
0 files changed, 0 insertions, 0 deletions