backends: Support returning lvalue and rvalue references
authorIlya Leoshkevich <iii@linux.ibm.com>
Mon, 13 Feb 2023 16:45:50 +0000 (17:45 +0100)
committerMark Wielaard <mark@klomp.org>
Tue, 14 Feb 2023 14:12:48 +0000 (15:12 +0100)
commita4fafb7722c9950dacd5689f1ce8e31f8fa94ed5
treefa3a53dc2e4297e8200c90e0a3ac4bdb90c9c412
parent47297d8bf2f516b66b6d45934849137ab7658a99
backends: Support returning lvalue and rvalue references

On the low level, they are the same as pointers. The change needs to be
done for all backends, so define a function and a macro to avoid
repetition. Also add a native test, which has to be implemented in C++.
Add the configure check for it.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
19 files changed:
backends/aarch64_retval.c
backends/alpha_retval.c
backends/arm_retval.c
backends/i386_retval.c
backends/ia64_retval.c
backends/libebl_CPU.h
backends/m68k_retval.c
backends/ppc64_retval.c
backends/ppc_retval.c
backends/riscv_retval.c
backends/s390_retval.c
backends/sh_retval.c
backends/sparc_retval.c
backends/x86_64_retval.c
configure.ac
tests/.gitignore
tests/Makefile.am
tests/funcretval_test++11.cxx [new file with mode: 0644]
tests/run-funcretval++11.sh [new file with mode: 0755]